Vés al contingut

Tema de Viquipèdia:La taverna/Tecnicismes

Amadalvarez (discussiócontribucions)

Hola, tinc diversos problemes a l'hora de crear/utilitzar continguts CSS.

  1. No tinc ni idea de com funcionen les class i funciono per prova-error. Com deia aquell, "m'ho explica senzill, per a què ho entengui un nen".
  2. Treballo amb Plantilla:Infotaula eleccions/styles.css on poso al meu millor entendre el CSS. Tinc una pàgina de prova a Usuari:Amadalvarez/Proves plantilles 5 on estan les diferents casuístiques que voldria solucionar.
  3. Començo per l'únic cas que em funciona: el text amb class/style que surt en verd, què és la mateixa solució aplicant un span style bla, bla,.. o un span class=txtquestion que està definit a la CSS amb els paràmetres fets servit a l'style anterior.
  4. Primer cas: En el cas anterior, com es fa per anul·lar manualment el valor d'un dels paràmetres de la class, mantenint la resta ?. He posat un exemple amb color:red; i l'efecte ha estat que anul·la tota la class i perd la cursiva i la font-size, per exemple. Fet!
  5. Segon cas: Com es fa per a que la Infobox agafi els valors que he creat (malament, segur) a la templatestyles ? O, potser hauria de preguntar, com s'han de crear aquestes classes ?
  6. Tercer cas: Alguns cops ens fa falta tenir un valor per passar com a paràmetre a una plantilla. A l'exemple de "aquesta caixa és per un SÍ/NO....", a la plantilla:colorbox (però podria ser qualsevol altra situació) espera un valor. En condicions normals, el color podria ser un paràmetre manual que ens passen i, preveure un valor per defecte. Per exemple: {{color box|{{if empty|{{{colorSi|}}} | green}}|SÍ}}. Ara bé, si volem que enlloc de "green", es faci servir el contingut de la class=coloryes , no tinc ni idea de com fer-ho.

De moment, fins aquí.

Merci

Papapep (discussiócontribucions)

Hola, Amador. Fa eons que no toco CSS, però assumeixo que la regla "!important" podria ser el que busques: https://developer.mozilla.org/es/docs/Web/CSS/Especificidad permet utilitzar valors indistintament del què tingui definida la classe original. Això sempre assumint que no tens accés al fitxer CSS mestre per poder-hi definir una regla més especifica, evitant així haver de posar-hi excepcions amb !important.

Salut.

Amadalvarez (discussiócontribucions)

Entenc que respons al primer cas. Veient que la pàgina que em passes diu que "el uso de !important es una mala práctica y debería evitarse" no sé que pensar.

En tot cas, no crec que el que demano sigui res excepcional, sinó que, simplement, no ho escric correctament. Per exemple, en el cas dels valors de les infobox, quan no estan informats, s'apliquen els que hi ha a la seva class.

Merci, company !

Papapep (discussiócontribucions)

Vol dir que és una mala pràctica especialment si s'utilitza en grans projectes o quan son molt. complexos, per què provoca que si tens el CSS en els fitxers font i després es modifica les classes, directrius i comportaments a nivell "local" costa molt de depurar quan alguna cosa falla. No per altra cosa.

Ssola (discussiócontribucions)

Fa molt temps que no toco css, però recordo una truc que anava molt bé. Si obres l'inspector de codi del navegador (F12), pots seleccionar qualsevol element html i et diu d'on surten els css que l'afecten, i pots jugar a canviar-ne els valors o a desactivar-ne alguns. Si no ho sabies, potser t'ajuda.

Amadalvarez (discussiócontribucions)

Hola @Ssola, no ho coneixia. Merci pel truc.

Penso que no m'he explicat bé. El que intento esbrinar és com fer servir les CSS per treure del codi de les plantilles el màxim de styles i passar-los a una templatestyles, per tal de que no calgui tocar el codi quan aquesta plantilla s'instal·li en una altra WP, ja que només hauran de canviar els valors de la templatestyle de la seva instal·lació. Això ja ho he aconseguit quan dins el codi tenia un span style bla bla i l'he canviat per un class= bla bla.

Ara bé, les plantilles (infotaules, especialment) acostumen a tenir paràmetres que permeten alterar certs valors de l'style estàndard a nivell article:

  • Imagina que tenim un span style=color:green; width:3em;{{{valuestyle|}}};.
  • Els articles que tinguin emplenat el paràmetre, per exemple, amb "valuestyle=color:red;font-size:85%;", afegiran aquest valor al que hi hagi a l'style i el seu comportament serà substituir el color i afegir la mida del text. Aquesta tècnica permet que només l'article que tingui aquest paràmetre informat canviara de color, mentre que la resta d'articles que fan servir l'style que hi ha dins el codi.
  • Aquest cas que funciona quan l'style és dins el codi de la plantilla, no em funciona si l'he extret i l'he creat com una class a la templatestyle.

Bé, tot aquest rotllo és pel cas 1), si hem pots aportar llum, passarem al 2).

Merci

Ssola (discussiócontribucions)

No sé com funciona el templatestyles, i si és possible això. Potser pots demanar-ho a la discussió allà.

Amadalvarez (discussiócontribucions)

@Ssola@Papapep Per la vostra informació. Resolt el cas 1). Veure el codi de "data17" i el seu resultat amb dos colors.

La solució ha estat posar un span dins un altre span. El primer defineix la class (sense ";" si no, no funciona) i per canviar el color sense afectar els altres atributs definits a la class, cal posar-ho en el segon span amb el text afectat que recull la suma lògica d'ambdós.

Podeu seguir pensant, si voleu...Jo ho faré

Salut !

Amadalvarez (discussiócontribucions)

Cas 3 solucionat. Veure el codi de "data25 i 27"

Si la plantilla invocada té els atributs sense valor per defecte, es pot solucionar incorporant la crida dins un span que cridi la class corresponent i sense passar-li cap valor al paràmetre manual que té previst. En no rebre cap valor, l'atribut background:{{{1|}}};, com exemple d'aquest cas, no actua perquè està buit i s'aplica el valor de la class(veure data25 del cas). Si, tot i tenir l'span amb la class embolcallant la crida, li passem un valor manual al paràmetre previst per la plantilla, llavors aquest actua per sobre de la class (veure data27 del cas)

Resposta a «Algun expert en CSS ?»