--- title: ':any' slug: 'Web/CSS/:any' tags: - CSS - Experimental - Pseudo-class - Reference translation_of: 'Web/CSS/:is' translation_of_original: 'Web/CSS/:any' ---
{{CSSRef}}{{SeeCompatTable}}

La pseudo-classe :any() 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.

/* 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;
}
Nota : Aquesta pseudo-classe està en curs de ser estandarditzada en CSS Selectors Level 4 sota el nom :matches(). És probable que la sintaxi i el nom de :-vendor-any() seran canviats perquè es reflecteixi en un futur proper.

Sintaxi

Sintaxi formal

{{csssyntax}}

Valors

selector
Un selector. Això pot ser un selector simple o un selector múltiple compost de selectors simples CSS 3 i pot incloure el combinador descendent.
Nota: Els selectors no poden contenir pseudo-elements i l'únic combinador permès és el combinador descendent.

Exemples

Per exemple, el següent 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;
}

Pot substituir-se per:

/* 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;
}

No obstant això, no utilitzeu el següent: (Veure la secció sobre el rendiment més endavant.)

:-moz-any(ol, ul, menu, dir) :-moz-any(ol, ul, menu, dir) :-moz-any(ul, menu, dir) {
  list-style-type: square;
}

Notes

Aquesta propietat és particularment útil quan es tracta de seccions i encapçalaments en HTML5. Des {{HTMLElement("section")}}, {{HTMLElement("article")}}, {{HTMLElement("aside")}} i {{HTMLElement("nav")}} es poden niar, sense :any() , l'estil d'aquests perquè coincideixin entre si pot ser difícil.

Per exemple, sense :any(), donar estil a tot els elements {{HTMLElement("h1")}} a diferents profunditats podria ser molt complicat:

/* 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*/

Usant :-any(), és molt més fàcil:

/* 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;
}

Problemes amb el rendiment i l'especificitat

Bug 561154 registra un problema amb Gecko en el qual l'especificitat de: :-moz-any() és incorrecta. La implementació actual (com Firefox 12) posa: :-moz-any() 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.

Per exemple:

.a > :-moz-any(.b, .c)

és més lent que:

.a > .b, .a > .c

i el següent és més ràpid:

:-moz-any(.a, .d) > .b, :-moz-any(.a, .d) > .c

Navegadors compatibles

{{CompatibilityTable}}

Descripció Firefox (Gecko) Chrome Internet Explorer Opera Safari
Suport bàsic {{CompatGeckoDesktop("2")}}{{property_prefix("-moz")}} 12.0 (534.30){{property_prefix("-webkit")}} {{CompatUnknown}} {{CompatUnknown}} 5
{{property_prefix("-webkit")}}
Descripció Android Chrome for Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Suport bàsic {{CompatUnknown}} {{CompatVersionUnknown}}{{property_prefix("-webkit")}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} 5
{{property_prefix("-webkit")}}