{"id":189,"date":"2023-06-02T17:38:42","date_gmt":"2023-06-02T15:38:42","guid":{"rendered":"https:\/\/user0.gesem.es\/blog\/?page_id=189"},"modified":"2023-06-02T18:45:26","modified_gmt":"2023-06-02T16:45:26","slug":"selectors-avancat","status":"publish","type":"page","link":"https:\/\/user0.gesem.es\/blog\/selectors-avancat\/","title":{"rendered":"Selectors avan\u00e7at"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Selectors d&#8217;atribut<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Els selectors d&#8217;atribut permeten indicar al navegador elements que tenen un atribut i, opcionalment, amb un valor d&#8217;atribut (que pot ser exacte o parcial)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/* element &lt;a&gt; amb atribut title (amb qualsevol valor) *\/\na&#91;title] {\n  color: purple;\n}\n\n\/* &lt;a&gt; amb l'href apuntant a \"https:\/\/exemple.org\" *\/\na&#91;href=\"https:\/\/exemple.org\"]\n{\n  color: green;\n}\n\n\/* &lt;a&gt; amb href que <strong>cont\u00e9<\/strong> \"exemple\" *\/\na&#91;href*=\"exemple\"] {\n  font-size: 2em;\n}\n\n\/* &lt;a&gt; amb href que <strong>termina en<\/strong> \".org\" *\/\na&#91;href$=\".org\"] {\n  font-style: italic;\n}\n\/* &lt;a&gt; amb href que <strong>comen\u00e7a per<\/strong> \"http:\/\/\" *\/\na&#91;href^=\"http:\/\/\"] {\n  font-style: italic;\n}\n\n\/* &lt;a&gt; que t\u00e9 assignada un nom de classe \"logo\" (pot tenir altres classes) *\/\na&#91;class~=\"logo\"] {\n  padding: 2px;\n}\n\n\/* &lt;a&gt; que t\u00e9 assignada un nom de classe \"logo\" o una classe que comen\u00e7a per \"logo-\" *\/\na&#91;class|=\"logo\"] {\n  padding: 2px;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aquest tipus de selectors es fan servir molt per poder estilar de forma diferent enlla\u00e7os segons si porten a un email ([href^=mailto]), s&#8217;obren en finestra nova ([target=_blank]), enllacen un n\u00famero de tel\u00e8fon ([href^=tel]),.. sense haver de donar-los una classe.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al CSS del reset que hem fet servir, hem vist aquesta regla:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ul&#91;class], <br>ol&#91;class]{<br>      list-style:none;<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aquesta regla indica que qualsevol llista del tipus <em>ordered<\/em> (ol) o <em>unordered<\/em> (ul) es mostrar\u00e0 sense el format de llista, per\u00f2 nom\u00e9s si t\u00e9 assignada una classe (sigui quina sigui).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per poder indicar que volem que qualsevol llista (ul o ol) es mostri sense estil (list-style:none), hem modificat la regla de la seg\u00fcent manera:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ul,<br>ol{<br>list-style:none;<br>}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Selector de fills<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Fins ara, hem fet servir selectors contextuals<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>article h2{<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><em>article h2<\/em>, estilar\u00e0 tots els <em>h2<\/em> que hi ha dins d&#8217;un article<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>article &gt; h2{<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En canvi <em>article > h2<\/em> nom\u00e9s estilar\u00e0 els <em>h2<\/em> que siguin fills directes de l&#8217;<em>article<\/em>. Si a dins de l&#8217;<em>article<\/em> hi ha un <em>footer<\/em> i aquest <em>footer<\/em> t\u00e9 un <em>h2<\/em>, aquest <em>h2<\/em> no s&#8217;estilar\u00e0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Selector de germans<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Podem fer servir els s\u00edmbols ~ i  + per assenyalar un element que comparteix pare amb un altre<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>h2 ~ p{<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>h2 ~ p<\/em><\/strong> indica al navegador que busqui qualsevol par\u00e0grafs que comparteixi pare amb un <em>h2<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>h2 + p{<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>h2 + p<\/em><\/strong> indica qualsevol par\u00e0grafs que apareix inmediatament despr\u00e9s d&#8217;un <em>h2<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>h2 + p + p{<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>h2 + p + p<\/em><\/strong> localitza aquells par\u00e0grafs que segueixen a un altre par\u00e0grafs que, al seu torn, segueix a un <em>h2<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al Reset que hem fet servir, hem trobat aquesta regla:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>article &gt; * + *{<br>margin-top: 1em;<br>}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aquesta regla diu al navegador que busqui qualsevol element que segueixi a un altre que, al seu torn, sigui fill directe d&#8217;un article. Aix\u00f2 permetr\u00e0 aplicar un marge superior a qualsevol fill directe d&#8217;un article, sempre i quan no sigui el primer fill directe (en aquest cas no tindr\u00e0 cap altre element al davant).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Selectors d&#8217;atribut Els selectors d&#8217;atribut permeten indicar al navegador elements que tenen un atribut i, opcionalment, amb un valor d&#8217;atribut (que pot ser exacte o parcial) Aquest tipus de selectors es fan servir molt per poder estilar de forma diferent enlla\u00e7os segons si porten a un email ([href^=mailto]), s&#8217;obren en finestra nova ([target=_blank]), enllacen un&hellip; <a class=\"more-link\" href=\"https:\/\/user0.gesem.es\/blog\/selectors-avancat\/\">Continueu llegint <span class=\"screen-reader-text\">Selectors avan\u00e7at<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-189","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/pages\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/comments?post=189"}],"version-history":[{"count":9,"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/pages\/189\/revisions"}],"predecessor-version":[{"id":211,"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/pages\/189\/revisions\/211"}],"wp:attachment":[{"href":"https:\/\/user0.gesem.es\/blog\/wp-json\/wp\/v2\/media?parent=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}