Rösta fram t-shirt till communityt!

En stor css fil eller en för varje sida?

Permalänk

En stor css fil eller en för varje sida?

Hej!

Jag har hållit på med webdesign ett tag nu, har testat olika sätt.
Men det är en sak jag har undrar över och det är om jag ska använda En stor css fil för allt / en för varje sida?

T.ex en stor fil som main.css för index.html, produkter.html , kontakt.html.

Eller flera små som index.css , produkter.css, kontakt.css osv.

Tacksam för svar.

Permalänk
Testpilot

En gemensam är nog bäst då du troligtvis har klasser och egenskaper du vill återanvända på alla sidor, har du unika element på varje sida bör du se över hur du egentligen kodar.

Troligtvis har du ju samma layout på hela sidan samt samma teckensnitt och rubrikstorlekar. CSS-filen cachas av dina besökare så den behöver bara laddas en gång när man först kommer till sidan, sen behöver den aldrig laddas ner igen trots att man byter undersida.

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk

Okej tack så mycket, lär mig mer för varja dag

Permalänk
Medlem

En CSS-fil för varje sida skulle ju omkullkasta hela idén med CSS, nämligen att samla layout-formaten på en plats. Om det nu är så att någon enstaka sida ska ha en annan layout anges det normalt i koden för just den sidan. Den koden kommer i så fall gå före det som finns i CSS.

Visa signatur

Ne nos sequere nobis secede

Permalänk
Medlem

Samma css för alla sidor, däremot kan man med fördel dela upp olika delar av css:en i olika filer. En för färger, en för layout, en för typsnitt osv.

Permalänk
Testpilot

Det finns ju dock vissa undantag där man kan ha en extra fil för en speciell del av sidan som använder väldigt många egna klasser och sånt, ett exempel är här på Sweclockers där det finns en huvud-CSS för hela sidan och en speciell för forumet som innehåller alla egenskaper för inlägg, avatarer och liknande som inte behövs om man bara besöker huvudsidan. På forumet laddas alltså båda CSS-filerna och den extra för forumet innehåller bara de egenskaper som inte finns i huvudfilen.

Visa signatur

Kolla gärna in min RGB-LED-ljusstake i galleriet
[Gigabyte GA-Z97MX-Gaming 5][Intel Core i5 4690K][Corsair XMS3 16GB][Asus GeForce RTX 2060 Super Dual Evo OC]

Permalänk
Skrivet av hunden:

Det finns ju dock vissa undantag där man kan ha en extra fil för en speciell del av sidan som använder väldigt många egna klasser och sånt, ett exempel är här på Sweclockers där det finns en huvud-CSS för hela sidan och en speciell för forumet som innehåller alla egenskaper för inlägg, avatarer och liknande som inte behövs om man bara besöker huvudsidan. På forumet laddas alltså båda CSS-filerna och den extra för forumet innehåller bara de egenskaper som inte finns i huvudfilen.

Om man inte har ett mindre projekt, som det jag sitter på just nu. Fulkodning på hög nivå, men jag kör på endast en CSS, trots att det i stort sett bara är body och text-typerna som är samma på varje sida. Resterande klasser och ID'n är unika på varje sida, men för att spara resurser, tid och allt sådant har jag allt i en enda CSS-fil, så att användaren bara behöver ladda den en gång.

Detta är dock inget att rekommendera för mer seriösa projekt, men detta är en engångsgrej som inte kommer vidareutvecklas senare.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem

Är i regel inte bättre att dela upp CSS över flera filer.
Ju fler CSS filer du har, desto fler anrop görs = mer belastning på servern.

Och att köra med helt olika ID / klasser på varje sida tar ju bort hela idén med CSS.

Visa signatur

...

Permalänk
Skrivet av Hal0:

Och att köra med helt olika ID / klasser på varje sida tar ju bort hela idén med CSS.

Dock går det inte alltid att använda samma klasser och ID'n på alla sidor. I mitt fall är det fem väldigt olika sidor, som i stort sett bara har färgerna gemensamt.
Det är endast två klasser som återanvänds bland dessa sidor; Två sidor delar sidhuvud, två andra sidor delar en div.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Legendarisk

Under tiden du arbetar på projektet bör du ha ett stylesheet för varje separat objekt / lager, t.ex. sidor eller widgets. Det blir snabbt oöverskådligt och svårarbetat att ha alla styles i samma fil i det stadiet.

När du sedan publicerar det bör du däremot slå samman arbetsfilerna till ett gemensamt stylesheet för att skära ner på antalet requests klienterna behöver göra. Bara att ha ett separat script som kan göra det åt dig när du behöver pusha ut en uppdatering. Om du minfierar din CSS (du bör se till att den både gzippas och minifieras innan den skickas till besökare) så görs det med fördel i samma steg.

Skickades från m.sweclockers.com

Visa signatur

Abstractions all the way down.

Permalänk
Medlem

Det kan vara en bra idé att ha flera CSS-mallar ibland. Man kan även göra som så att man har ett standard-schema för hela sidan, sedan ett separat som även inkluderar "huvudschemat". Har man många layouter för olika devices osv så kan CSS-filen bli på flera tusen rader, vilket gör det svårt för någon som inte är insatt att redigera.

Visa signatur

[Intel i7 4770K] [ GTX 1070] [Asus ROG VI Gene] [Corsair AX860] [Corsair 16GB Vengeance LP] [120GBIntel 520] [Bitfenix Phenom M]

Citera för svar

Permalänk
Skrivet av nivv:

Det kan vara en bra idé att ha flera CSS-mallar ibland. Man kan även göra som så att man har ett standard-schema för hela sidan, sedan ett separat som även inkluderar "huvudschemat". Har man många layouter för olika devices osv så kan CSS-filen bli på flera tusen rader, vilket gör det svårt för någon som inte är insatt att redigera.

Det var därför kommentarer uppfanns
Användaren bör alltid sättas i fokus, så ju färre saker som behöver laddas, desto bättre. En massiv mall med allt i, separerat med kommentarer, är alltid att föredra i sidor som skall ut live. När någon sedan skall redigera, så kan denne söka på kommentaren med sidan/devicens namn lika lätt i mallen som i mappen.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem
Skrivet av morphman86:

Det var därför kommentarer uppfanns
Användaren bör alltid sättas i fokus, så ju färre saker som behöver laddas, desto bättre. En massiv mall med allt i, separerat med kommentarer, är alltid att föredra i sidor som skall ut live. När någon sedan skall redigera, så kan denne söka på kommentaren med sidan/devicens namn lika lätt i mallen som i mappen.

Håller med.
Jag jobbar med detta, och tycker alltid det är smidigare med en enda CSS fil.
Bryr mig inte ens direkt om ifall filen är kommenterad eller inte, men det skadar ju inte om det finns kommentarer.
Använder man Firebug eller liknande, så ser man ju direkt vilka klasser ett element använder, och då är det ju bara att leta upp dessa i CSS filen och göra sina ändringar.

Visa signatur

...

Permalänk
Skrivet av Hal0:

Håller med.
Jag jobbar med detta, och tycker alltid det är smidigare med en enda CSS fil.
Bryr mig inte ens direkt om ifall filen är kommenterad eller inte, men det skadar ju inte om det finns kommentarer.
Använder man Firebug eller liknande, så ser man ju direkt vilka klasser ett element använder, och då är det ju bara att leta upp dessa i CSS filen och göra sina ändringar.

Precis, och en välstrukturerad sida behöver inte kommentarer. Kommenteringen använder jag endast för att markera att här finns saker specifika för just DEN sidan, om det är något som går långt utanför normen.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Hedersmedlem
Skrivet av morphman86:

Det var därför kommentarer uppfanns
Användaren bör alltid sättas i fokus, så ju färre saker som behöver laddas, desto bättre. En massiv mall med allt i, separerat med kommentarer, är alltid att föredra i sidor som skall ut live. När någon sedan skall redigera, så kan denne söka på kommentaren med sidan/devicens namn lika lätt i mallen som i mappen.

Det finns också många engines som kompilerar CSS-filen från antingen många mindre CSS-filer eller från en helt egen, förenklad/mer kraftfull syntax. Det ger fördelen att enkelt kunna använda färdiga idiom/variabler/beräkningar i utvecklingsarbetet och sedan låta datorn generera den rena CSS-filen. En "vanlig" CSS-uppdatering blir lätt ett search-and-replace-arbete om man t ex ska ändra en temafärg som definierats på många ställen, och om man ändrar någon specifik marginal så kan man behöva göra manuell ±-beräkning på en mängd ställen. Med en kompilator blir det mer uppstrukterat och lätt att göra tematiska ändringar.

Det är inget jag använder själv på min hobbynivå, men på riktigt stora projekt är det enda sättet att kunna hålla fason på utvecklingsarbetet, inte minst om det är många utvecklare som ska samsas.

Exempel på vanliga CSS-kompilatorer:

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av phz:

Det finns också många engines som kompilerar CSS-filen från antingen många mindre CSS-filer eller från en helt egen, förenklad/mer kraftfull syntax. Det ger fördelen att enkelt kunna använda färdiga idiom/variabler/beräkningar i utvecklingsarbetet och sedan låta datorn generera den rena CSS-filen. En "vanlig" CSS-uppdatering blir lätt ett search-and-replace-arbete om man t ex ska ändra en temafärg som definierats på många ställen, och om man ändrar någon specifik marginal så kan man behöva göra manuell ±-beräkning på en mängd ställen. Med en kompilator blir det mer uppstrukterat och lätt att göra tematiska ändringar.

Så det är lättare att öppna 15 CSS-filer och köra search-and-replace i dem än att köra seach-and-replace i en enda fil? För jag menar om du har denna temafärg på så många ställen, så måste du ju ändå in i varje separat fil och ändra.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Hedersmedlem
Skrivet av morphman86:

Så det är lättare att öppna 15 CSS-filer och köra search-and-replace i dem än att köra seach-and-replace i en enda fil? För jag menar om du har denna temafärg på så många ställen, så måste du ju ändå in i varje separat fil och ändra.

Fast nu förstod du inte vad en CSS engine var. De tillåter en t ex att definiera variabler.

Definierar du "$bgcolor = black" någonstans och sedan använder t ex "body{background-color: $bgcolor}" och liknande i resten av filen så räcker det ju med att ändra variabeltilldelningen till "$bgcolor = white" för att färgen ska ändras överallt. Det är ett trivialt exempel och inte det enda som en engine gör.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av phz:

Fast nu förstod du inte vad en CSS engine var. De tillåter en t ex att definiera variabler.

Definierar du "$bgcolor = black" någonstans och sedan använder t ex "body{background-color: $bgcolor}" och liknande i resten av filen så räcker det ju med att ändra variabeltilldelningen till "$bgcolor = white" för att färgen ska ändras överallt. Det är ett trivialt exempel och inte det enda som en engine gör.

Det var ju förvisso väldigt användbart. Skall kolla genom länkarna du skickade när jag har lite tid, men jag håller fast vid att utåt när ett projekt är klart bör det vara en enda CSS-fil, eller åtminstone så få som möjligt.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Hedersmedlem
Skrivet av morphman86:

Det var ju förvisso väldigt användbart. Skall kolla genom länkarna du skickade när jag har lite tid, men jag håller fast vid att utåt när ett projekt är klart bör det vara en enda CSS-fil, eller åtminstone så få som möjligt.

Ja, fast att det är en enda fil utåt hindras inte av att kompilatorn har många inputfiler för att hålla utvecklingen segregerad.

Men i de allra flesta fall för de som läser detta forum, mig inkluderat, så är projekten i mer hanterbara storlekar. En enstaka stor fil som kan cacheas är mer eller mindre alltid att föredra. Ska väldigt mycket till om den gör över 100 kB ens i stora fall, så latensen vid laddning på varje separat sida äter väldigt snabbt upp hastighetsvinsten med mindre och mer korrekt riktade filer.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Medlem
Skrivet av phz:

Ja, fast att det är en enda fil utåt hindras inte av att kompilatorn har många inputfiler för att hålla utvecklingen segregerad.

Men i de allra flesta fall för de som läser detta forum, mig inkluderat, så är projekten i mer hanterbara storlekar. En enstaka stor fil som kan cacheas är mer eller mindre alltid att föredra. Ska väldigt mycket till om den gör över 100 kB ens i stora fall, så latensen vid laddning på varje separat sida äter väldigt snabbt upp hastighetsvinsten med mindre och mer korrekt riktade filer.

Ja det är ju bara ren text så filerna blir ju inte så stora.
Största CSS filen jag jobbar med ligger på ca 95kB, och består av nästan 6000 rader CSS.
CTRL+F används flitigt när man ska jobba med den filen

Visa signatur

...