Bredd på hemsida med tanke på fönsterstorlek i Macintosh

Permalänk
Medlem

Bredd på hemsida med tanke på fönsterstorlek i Macintosh

Jag håller på och bygger en hemsida och har bestämt mig för att den ska vara 1280 bildpunkter bred, eftersom det är det eller mer som de flesta verkar ha i dag. Vid en senare tidpunkt ska jag göra en mobilversion av hemsidan och den ska vara smalare.

Jag har fått synpunkt från en Macintosh-användare att hemsidan var för bred. Det visade sig att han faktiskt hade skärmupplösning på 1280 bildpunkters bredd på sin Macintosh, men att webbläsarens fönster bara täckte två tredjedelar av skärmen. Därför var han tvungen att scrolla i sidled.

Det där har jag som Windowsanvändare svårt att förstå mig på. Men det verkar vara en grundläggande skillnad i hur man använder Windows och Macintosh. I Macintosh täcker fönster aldrig hela skärmen, eftersom det är tänkt att man ska kunna se de fönster som ligger under och kunna bläddra bland dem på något sätt. Det kan man göra i Windows också, men såvitt jag kan se är standard i Windows att fönster täcker hela skärmen och att man får översikt över vilka fönster som är öppna via raden längst ned på skärmen och att man där kan växla mellan fönster. I Macintosh går det alltså inte att maximera fönster om man inte skaffar någon plugin eller gör någon avancerad inställning.

Hur ställer man sig som webbutvecklare till det där med att Macintosh-användare inte använder hela skärmen? Visst kan man göra hemsidan i olika storlekar och visa olika version av hemsidan beroende på användarens skärmupplösning, men det löser ju inte problemet med användarens fönsterstorlek.

Jag har ganska många olika komponenter på min hemsida och vill kunna styra hur den ser ut (i praktiken ange bredd i pixlar för alla tabellceller). Jag vill inte bygga någon elastisk deg som fyller hela skärmen och ändrar utseende vartefter man ändrar fönsterstorleken. Det är klart att jag kan bygga hemsidan 1024 bildpunkter bred, men min vän Macintosh-användaren hade ju egentligen ett fönster som var ännu mindre än så. Så vad bör jag göra?

Kan avslutningsvis nämna att jag bygger hemsidan för mitt eget företag – ett enmansföretag med begränsade resurser. Jag själv kan statisk HTML och har en programmerare som hjälper mig med PHP och MySQL. Av ekonomiska skäl vill jag helst inte leja ut även layouten till en programmerare, utan vill försöka göra den själv.

Permalänk
Medlem

1280 låter lite brett om det är en sida i SK boxed format tycker jag.

Moderna sidor idag görs ofta responsive så dom passar både stora skärmar med hög upplösning samt mobiler eller surfplattor med små skärmar.
Och antingen i full bredd design eller i boxed format, dock med en max bred där tex innehållstext ska rymmas, men andra delar som anpassar sig efter storlek och skärmupplösning, i i viss mån ett elände kan vara, tex jag vill ha normalsidan utan responsive i mobilen också, avskyr också SK mobilversioner av en sida, spelar ingen roll viken site det är jag vill samma på datorn och mobilen, i min mobil kan jag som tur är fejka så den känns igen som en desktop dator så man slipper tvingade mobilversioner, sånt gör en galen om man får upp.

OK nu vill du inte ha det så skriver du, men det är så moderna sidor idag görs, och i väldigt stilren minimalistisk design och mest ljusa färger.
Helt enkelt för att det tilltalar eventuella kunder och är mer säljande skulle jag tro, för tillfället åtminstånde, om ett år eller 2 kanske det ska vara på nått helt annat sätt

Hursom skulle inte göra en sida som är 1280 bred, vilka är det som kör detta menar du, aldrig sett tror jag så breda.
Vanligaste är nog runt eller drygt 1000

Edit: snurra runt lite och bland det bredaste jag hitta var sidan 1254px fast bred (expressen)

Visa signatur

Acer Predator Helios 300

Permalänk
Hedersmedlem

Du säger att du inte vill ha någon "elastisk deg" utan vill designa statiskt, men samtidigt ser du problemet i statiska designer, och att olika personer kommer ha olika bredder på sina läsare. Det ligger en liten motsägelse där och lurar .

Gällande "elastisk deg" så är det ju inte så att folk sitter och kontinuerligt ändrar bredden på sina läsare: det är det mest designern som gör under utvecklingsprocessen. Poängen är att oavsett vem som dyker på din sida så ska den initiala upplevelsen vara så bra som möjligt. Om man verkligen vill så kan man lägga till något i stil med "ses bäst i en bred display", men i praktiken hjälper det sällan användare, så det kan gärna skippas (om det inte är någon faktiskt funktionalitet som kräver en viss bredd). Det är aldrig bra att "lägga skuld" på sina besökare på det sättet.

Jag kommer skriva en del runt konceptet nedan. Kanske du hittar något du inte tänkt på tidigare som gör att du omvärderar tänket kring en statisk design, kanske inte. Det är tillåtet att hoppa över texten .

——

Förr

Hur man designar en sida från grunden är väldigt subjektivt; om du frågar de som började med webbutveckling på 1990-talet och i praktiken närapå ända fram till ~2010 så var det inget konstigt att utgå ifrån en "pixelbredd", sätta statiska bredder på alla element och köra på ("This site is best viewed in 800x600" osv). Fortfarande skulle jag säga att det inte är ovanligt att en utvecklare börjar med en tänkt "maxbredd" och sedan jobbar därifrån, med vissa skillnader (en annan ansats är att börja från "andra hållet" (buzzword: "mobile first")). Dock så vill man generellt att sidan även ska hantera andra bredder smidigt.

Dagens enhetsflora

Användare kommer idag besöka din sida från en mängd olika enheter; det handlar inte bara om antingen stationär på 1280 pixlars bredd eller mobil på 360 pixlars bredd, utan snarare hela spannet. Som du märkte så är det för den delen i sig problematiskt att anta att alla kör "maximerade" webbläsare.

Låt säga att en användare kommer från en platta: det är möjligt att de med sin höga pixeltäthet rent tekniskt har 1280 adresserbara pixlar i bredd (Nexus 7 har som exempel 1920x1200 pixlars upplösning), men i praktiken skulle det bli extremt liten text att pixelmappa rakt av, så generellt använder den en multiplikator för att rendera för en lägre "bredd" och sedan använda sina extra pixlar till att extrapolera (Nexus 7 renderar mig veterligen sidor i 960x600 dp).

Även om du tänker att det inte är så många som surfar på plattor idag (vilket i sig inte är glasklart) så kan du tänka på att det för ett par år sedan i stort inte var någon som surfade på platta — hur kommer det se ut bara ett år fram i tiden? Vill du behöva göra om hela designen då igen? Vill du att de som använder platta eller av annan anledning surfar i en lägre upplösning redan idag ska få en ihoptryckt upplevelse?

Adaptiva tankar

Jag tror att du som bästa ansats bör förbereda direkt för att din sida ska fungera smidigt i flera bredder. Det betyder inte att designen i ditt "1280 pixlar brett"-läge måste ändras — men du kan behöva förbereda för att dynamiskt ändra om objektplacering och annat för att din sida ska kunna vara sömlöst läsbar i mindre bredder och format. Detta går att göra ända ner till mobilnivå, varpå du kan ha en och samma sida för alla enheter som skalar automatiskt (se media queries).

För att få en överblick så är Google Web Fundamentals ett levande dokument som introducerar en hel del av dessa koncept (exempelvis avsnittet Responsive Web Design Basics). Det är nästan lite väl evangeliskt på sina ställen kan tyckas, men där finns en hel del intressanta poänger att hitta. I sämsta fall håller man inte med om det som står, och då har man ändå troligen lärt sig något nytt.

Pixlar mot relativa enheter

Terminologin "1280 pixlar bred" är i sig en artefakt från en "svunnen tid" . Det är inte så lätt att "en pixel är en pixel" längre, liksom antyddes med Nexus 7-exemplet ovan. Se exempelvis den dagsfärska laptoprecensionen av Dells nya 13.3"-laptop med 3200x1800 pixlars upplösning — den hade ju kunnat få plats med 2.5 av dina hemsidor på bredden, men varje sida skulle då bara bli runt 12 cm bred på skärmen, vilket man förstår blir rätt plottrigt. I stället skalas dessa pixlar på olika sätt.*

Uttryck hellre dina bredder, fontstorlekar, etc., i teckenrelativa enheter så som `em` och `%`. Detta kommer spara gråa hår när du framgent försöker få din sida att skala fint för att fungera på olika enheter, just för att "en pixel är en pixel" inte längre håller. Kort sagt så kan man i CSS-sammanhang säga att `1em` är en referensenhet som betyder "nuvarande teckenstorlek", `1.5em` betyder "1.5 gånger nuvarande teckenstorlek", osv. Man kan även använda `100%` och `150%` direkt, med några subtila skillnader mellan `em` och `%`. Relativa enheter kommer också (åtminstone i teorin) sömlöst hantera situationen när användare av en eller annan anledning väljer att förstora/förminska text i sina webbläsare, då de helt enkelt bara ändrar sin webbläsares referensstorlek, dvs till vad ditt CSS-dokuments initiala `100%` är relativt.

Ett vanligt mönster är att börja sin CSS-fil med att deklarera `body { font-size: 100%; }` för att definiera att man vill använda browserns "vanliga" teckenstorlek (vilket i sig ofta (←OBS) betyder `16px`) och sedan ange alla övriga mått på sidan i em (eller någon annan relativ enhet, men det kan förenkla att vara konsekvent där det går). `1.6em` blir då 60 % större än referensstorleken i objekt som ligger direkt under `body`, men enheten är hela tiden relativ till "förälderns" teckenstorlek, så ett element med `font-size: 1.4em` inuti en behållare med `font-size: 1.6em` blir relativt dokumentets basstorlek 160 % ⋅ 140 % = 224 % i storlek. Egentligen är det ju ofta just förhållandet mellan olika delar i en design som är intressant, snarare än deras statiska storlekar.

Magin i detta ligger inte minst i att kunna använda "media queries" för att vid en viss brytpunkt ändra till `body { font-size: 90%; }`, och då se alla mått på sidan sömlöst skalas ner till 90 % av fullbreddsversionen.

Kan också nämna att om man har stark tro på att en webbläsares standardteckenstorlek är `16px` så kan man ange `body { font-size: 62.5%; }` varefter `1em` motsvarar `10px`, vilket gör det lätt att översätta mellan pixlar och em. Personligen tycker jag att det känns "hackigt" och frångår en del grundtankar bakom relativa enheter, men liksom rubriken nedan påvisar så kan olika lösningar passa olika situationer.

Följ praxis tills praxis inte bör följas

Som slutkläm ska det nämnas att "responsiv design" ibland används som närmast ett ofelbart mantra, vilket inte heller är bra. Det kan alltid finnas lägen då andra infallsvinklar passar bättre, med den mängd tvångsvillkor en webbdesigner kan stå inför (mängd reklam som ska få plats, inte minst). Det är inte meningen att försöka vara så evangelisk här, men idag bör frågan en designer ställer sig snarare vara varför man inte ska välja en adaptiv design framför en statisk, och övervikten går ständigt än längre åt det adaptiva hållet.

——
*: I praktiken så har situationen med att ange exempelvis teckenstorlekar i pixlar förbättrats lite sedan de nya enheterna först började dyka upp, och det kan finnas situationer där man vill uttrycka bredder utifrån exempelvis rasteriserade bildelement där pixelpositionering är rimligast, men generellt så är det ofta mer rättfram att använda relativa enheter.

Visa signatur

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

Permalänk
Avstängd

Som en som använder skalning i webbläsaren för att kunna läsa text på teven som är en bit bort anser jag att responsiv design, eller i alla fall en design som fungerar även i smalare fönster, är mycket viktigt. Jag försöker också bygga de sidor jag bygger i jobbet på det viset och det är inte så komplicerat om man har tänkt på det från början, att applicera det på en gammal sida kan vara oerhört jobbigt dock.

Permalänk

Välskrivet som vanligt från phz.

För att bygga vidare på det här med enheter och dess olika fönsterstorlekar, så har den så kallade "mobilsidan" för små enheter dött ut, och precis som med 99mac så kommer sweclockers så småningom att övergå till Boilerplate/adaptiv design. Detta för att det inte går att dividera upp olika designer och layouts för olika typer av enheter.

Jag använder frekvent halva sidan av min 21:9 skärm (vilket blir ca1280px), som fungerar bäst på nästan alla sidor. Men samma sak gäller inte när jag vill använda ena halvan av en 16:9 1080p display. Inte heller ena halvan av en UHD display. Och när man sedan räknar in olika mobila enheter, med allt ifrån 720p till 2048p i bredd, så blir en statisk 1280px sida svår att handskas med. Och precis som du nämner så är OS X en helt annan femma, där, såvida man inte kör webbläsaren i helside-läge, så kan fönstret vara i vilken upplösning som helst.

Och precis som phz nämner så skalar olika enheter olika. en 5k imac och en 11" mba kan t.ex inte ha samma renderad dpi i webbläsaren, det hade varit katastrof och elände. Samma sak gäller här igen mobila enheter.

Upplösningarna jag nämnt ovan är sådana jag sitter med just nu. Och en 1280px sida hade bara fungerat ok på en av dem utan att låta läsaren eller operativsystemet skala. Jobba utmed relativa mått istället för specifikt t.ex 1280px.

Visa signatur

Palit RTX 3060 Ti | Ryzen 7 7800X3D | Gigabyte B650M DS3H | 32GB Vengeance 5600 MHz CL36

Permalänk
Medlem

Ett stort tack för alla svar! Det här var mycket intressant och tankeväckande.

phz skriver att terminologin "1280 pixlar bred" i sig är en artefakt från en "svunnen tid". Det är lite där som problemet ligger, nämligen att jag själv är en artefakt från en svunnen tid! Jag började bygga hemsidor 1997 och höll på med det mycket till ett par år efter millennieskiftet. 2005 lämnade jag mitt sista webbredaktörsuppdrag. Jag har alltså inte följt med i utvecklingen på tio års tid. Naturligtvis har jag sett hur mycket som har hänt med hemsidor sedan dess (och konstigt vore det ju annars), men i mitt skygglappstänkande trodde jag väl att det fortfarande skulle räcka med mina grundläggande kunskaper i HTML. Och det skulle det väl egentligen göra om det inte fanns just denna stora flora av skärmstorlekar – eller snarare fönsterstorlekar. Det är helt klart responsiv webbdesign som gäller, så jag får försöka läsa in mig på det.

Men finns det inte ganska många hemsidor i dag som faktiskt är cirka 990 bildpunkter breda (anpassade för 1024 bildpunkters skärmupplösning)? Vore det en total katastrof att som nödutväg göra en hemsida med 990 bildpunkters fast bredd? Man kan ju tyvärr inte alltid få det bästa.

Permalänk
Hedersmedlem
Skrivet av Sve75:

Ett stort tack för alla svar! Det här var mycket intressant och tankeväckande.

phz skriver att terminologin "1280 pixlar bred" i sig är en artefakt från en "svunnen tid". Det är lite där som problemet ligger, nämligen att jag själv är en artefakt från en svunnen tid! Jag började bygga hemsidor 1997 och höll på med det mycket till ett par år efter millennieskiftet. 2005 lämnade jag mitt sista webbredaktörsuppdrag. Jag har alltså inte följt med i utvecklingen på tio års tid. Naturligtvis har jag sett hur mycket som har hänt med hemsidor sedan dess (och konstigt vore det ju annars), men i mitt skygglappstänkande trodde jag väl att det fortfarande skulle räcka med mina grundläggande kunskaper i HTML. Och det skulle det väl egentligen göra om det inte fanns just denna stora flora av skärmstorlekar – eller snarare fönsterstorlekar. Det är helt klart responsiv webbdesign som gäller, så jag får försöka läsa in mig på det.

Jag fick också inpräntat många av mina grundkunskaper i webbdesign under den väldigt statiska perioden, och jag bidade min tid med ett vakande öga på håll gällande "responsiv design"-boomen som började ~2010 innan "best practices" började cementeras. Blir vi bara av med åtminstone IE8 (officiellt stöd yxas av Microsoft tidigt 2016, av allt att döma) så ser situationen bättre ut än eventuellt någonsin vad gäller browserkompatibilitet, trots alla dessa olika skärmbredder, så man behöver inte vara ledsen över utvecklingen .

Har du legat i ide ett tag så kan det också vara värt att kolla in nyheterna i HTML5 jämfört med HTML4 (och XHTML som pushades stenhårt runt 2000 och en tid därefter kan vi med gott samvete lägga bakom oss helt och hållet). Det finns en mängd förenklingar som gör livet enklare för alla parter. Återigen så har vi IE8 som kan få för sig att agera betongsugga, men det går att kompensera relativt smärtfritt genom polyfills (som också är ett rätt nytt begrepp, introducerat just i samband med HTML5).

Enklaste ansats är i mina ögon att redan idag nyttja en del av de godsaker HTML5 och CSS3 ger dig, och sedan fylla i eventuella luckor med polyfills för de webbläsare som saknar stöd (vilket troligen bara kommer vara äldre IE-läsare om du inte svävar ut alltför mycket) ifall det skulle krävas. I framtiden kan man sedan helt enkelt fasa ut dessa polyfills utan bekymmer, samtidigt som man kan koda någorlunda "modernt" redan i nuläget.

Skrivet av Sve75:

Men finns det inte ganska många hemsidor i dag som faktiskt är cirka 990 bildpunkter breda (anpassade för 1024 bildpunkters skärmupplösning)? Vore det en total katastrof att som nödutväg göra en hemsida med 990 bildpunkters fast bredd? Man kan ju tyvärr inte alltid få det bästa.

Det är inte ovanligt att hitta någon sorts "maxbredd" även i dagens designer (inte minst av rent typografiska skäl), men väldigt ofta finns det ingen direkt anledning att tvinga en viss fast bredd. Det räcker att ha ett horisontellt elastiskt element för att en sida ska kunna skala mjukt. När det börjar bli för trångt så kan man sedan minska teckenstorlek, ändra kolumnlayout, möblera om element, med mera. En läsare som har mindre tillgänglig bredd än vad du planerat med din "maxdesign" hade ju ändå inte kunnat använda sidan så som den var tänkt, så då kan man ju åtminstone försöka presentera en sida som går att läsa. Att sidan ska vara användbar vid olika bredder kan vara ett första mål. Att sedan dessutom göra den "snygg" kan vara socker på toppen.

Om du, som du säger att du tänkte göra, börjar utforska hur responsiva sidor löser sin design så kommer du troligen se att det kan gå rätt smärtfritt att förvandla en tänkt statisk layout till mer dynamisk. Responsive Web Design Patterns från den där Googlesidan jag länkade innan visar upp ett par vanliga mönster som används frekvent, med länkar till både minimala demonstrationssidor och faktiska stora externa sidor som är byggda på respektive sätt.

Visa signatur

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

Permalänk
Medlem

Intressant läsning. Jag slutade i princip att hålla på med websidor (iallafall designmässigt) kring 2009-2010. Det har hänt en hel del sedan dess. Då började man behöva ta hänsyn till mobila enheter, idag känns det som det viktigaste. Jag sysslade då inte med interaktiv webutveckling heller (tex javascript), det har jag insett vikten av idag. Det gäller att hålla sig uppdaterat om "webmodet".

Hittade denna snubbe som hade lite bra tutorials: https://www.youtube.com/user/LearnWebCode