Er bestemt stadig newbie indenfor Drupal, men har lært meget allerede, bl.a. af at bygge mit eget sæt tema-templates (startet som en klon af "nifty corners").

Drupals (v. 5) måde at bruge stylesheets på er noget rod, lærer jeg så. Mit site er bygget op af en række dejlige moduler og se her, hvad sitet så smider ud til browserne af stylesheet-kald:

../modules/aggregator/aggregator.css ../modules/node/node.css ../modules/system/defaults.css ../modules/system/system.css ../modules/user/user.css ../modules/acidfree/acidfree.css -- hvortil kommer mit eget stylesheet.

Kommentar: 1) Ikke smart at alt det der smides i hovedet på brugerne og 2) klart en kilde til "underlig opførsel" at der er embedded css-kald rundt omkring i koden.

Nu kan jeg så begynde at gætte mig til i hvilken css-fil en bestemt egenskab sættes. (Eller omdøbe dem alle sammen, så de er sat uden for indflydelse) Men...

Spørgsmål: 1) Findes der en måde at få styr på alle de css'er / overrule dem, 2) et værktøj til at få overblik over dem?

/Rolf PS--- IE... grrr.

#2 Thomas Hansen

"Kommentar: 1) Ikke smart at alt det der smides i hovedet på brugerne og 2) klart en kilde til "underlig opførsel" at der er embedded css-kald rundt omkring i koden."

Og hvordan havde du lige forestillet dig at det skulle kunne lade sig gøre for moduler at levere CSS'en der skal til for at formatere deres HTML? Nok er det mest themets opgave at styre udseendet, men alle themes kan altså ikke tage højde for hvert eneste moduls små CSS særheder.

Update status modulet vil f.eks. gerne have at moduler der er out of date bliver markeret med rødt, vil du have at udvikleren af modulet skal hen og kontakte hver eneste theme udvikler for at få dem til at tilføje den regel?

Ad 1: I hovedet på brugeren? Hvilken bruger, for den eneste bruger jeg kan se der interesserer sig for antallet af CSS filer, er en webdesigner? Hvis det er performance der bekymrer dig, så gå til Administration Indstillinger og slå "Saml og komprimer CSS-filer" til.

2: CSS er generelt en kilde til 'underlig opførsel' hvis du ikke har styr på det. For det første sørger Drupal for at inkludere themes CSS til sidst, så den har muligheden for at override de default styles de forskellige moduler leverer, for det andet kan FireBug eller IE Developer Toolbar fortælle dig precis hvilke CSS regler der bliver brugt på et givent element.

Så det du kalder kaos er faktisk et velovervejet system der giver udviklere og designere mulighed for at arbejde sammen, uden at det er overvældende besværligt for nogen af parterne.

Og vil du tage fuld kontrol over CSS'en og er villig til at tage ansvaret for at tingene ser ud af lort, så er det ikke så svært: http://morten.dk/blog/geekmas-1-im-king-taking-total-control-over-css-dr...

  • 0
  • 0
#3 Rolf Ask Clausen

Hej Thomas

Tag ikke fejl: Jeg synes rigtig godt om drupal og har på imponerende kort tid fået et rigtig fornuftigt site op.

Men så er der problemer som denne "ikke-bug": At man bruger urimelig megen tid på at lede efter "det css, som sætter den særlige egenskab ved det html-element, som lige nu driller". For eksempel en ekstra padding rundt om et foto: "Hov, hvor kom den fra"? Hvorefter man skal ned og kode en style i ens eget css som overskriver modulets / eller hacke i modulets css, hvilket næppe er en god ide ift. senere opdatering.

Så det konkrete:

Ja, firebug og andre css-viewere er en stor hjælp. Uden var opgaven næsten umulig.

"... sørger Drupal for at inkludere themes CSS til sidst, så den har muligheden for at override de default styles de forskellige moduler leverer..."

Ja, og der kunne ret let laves et fint admin-modul, som listede alle inkluderede styles op, så man var fri for at lede efter dem. Måske eksisterer det allerede?

Nej, din røde farve til forældede moduler ser jeg ikke noget problem i. Man bruger selvf. bare et standardscheme til admin-siden.

/Rolf

  • 0
  • 0
#4 Thomas Hansen

"At man bruger urimelig megen tid på at lede efter "det css, som sætter den særlige egenskab ved det html-element, som lige nu driller"."

Undskyld mig, men hvordan kan du bruge 'urimelig meget tid' på det, hvis du bruger FireBug?

"Hvorefter man skal ned og kode en style i ens eget css som overskriver modulets / eller hacke i modulets css, hvilket næppe er en god ide ift. senere opdatering."

Nej, du hacker ikke i modulets CSS, som sagt, du bruger CSS prioritering til at override dem i dit theme. Og at skulle override er prisen man betaler for at moduler kan levere lidt CSS så tingene er nogenlunde kønne per default.

Og som sagt står det dig også frit for at fjerne "print $styles" i dit theme, og du har 100% styr over CSSen. Du skal nok bare ikke forsøge at udgive dit theme med det hack på drupal.org.

"Ja, og der kunne ret let laves et fint admin-modul, som listede alle inkluderede styles op, så man var fri for at lede efter dem. Måske eksisterer det allerede?"

var_dump(drupal_add_css());

Hvilket jo så ikke helt gør det, fordi moduler kan nøjes med at tilføje CSS på netop deres side.

"Nej, din røde farve til forældede moduler ser jeg ikke noget problem i. Man bruger selvf. bare et standardscheme til admin-siden."

Du missede så pointen ved at fokusere på modulet brugt som eksempel. Prøv med panels istedet, den skal bruge nogen CSS regler til at layoute de paneler du definerer. Fortæl mig hvordan det skal kunne lade sig gøre uden modul CSS?

  • 0
  • 0
#5 Rolf Ask Clausen

... så jeg melder pas på den, Thomas.

Vores diskussion her er ved at udarte til smag og behag.

Min smag er, at jeg gerne vil være fri for at lede efter og override forskellige definitioner på fx h3 - hvor et modul har valgt at navngive sin h3 "karakteristisk" i stedet for at holde sig til site-h3. Jeg synes, den slags generer i et i øvrigt rigtig godt cms.

Din smag er ( som jeg læser det ) at det er godt at modulerne sørger for at elementerne præsenterer sig.

Begge dele er valide, men enige bliver vi vist ikke.

Mange hilsner Rolf

  • 0
  • 0
#6 Thomas Hansen

Panels er et modul til at opdele sider i paneler. Den er nødt til at have noget CSS for at kunne placere de områder på siden.

"Min smag er"

Og så er det netop pointen at det kan du fuldstændig slippe for, du fjerner bare "print $styles". Du har begge muligheder, hvorfor beklager du dig over at default ikke er hvad du ønsker?

Jeg prøver at pointere at der er en ret god grund til at default er det du kalder 'kaos'. Det er ikke bare et spørgsmål om smag, det er et spørgsmål om at du ikke kan have et system hvor 200 forskellige themes skal tage højde for 1000vis af modulers CSS, og derfor er der nødt til at være noget 'kaos'.

Det er en bazaar, ikke en katedral.

  • 0
  • 0