Avatar billede Slettet bruger
26. maj 2006 - 16:12 Der er 14 kommentarer og
1 løsning

størelse af side

Hvordan sikre i at siden kan vises i alle browserwinduer uafhængigt af hvilken opløsning brugeren har på sin skærm

Laver i to versioner af siden eller laver i noget smart med javasicript??
Avatar billede keysersoze Ekspert
26. maj 2006 - 16:17 #1
Tilpasser det til mindste fællesnævner (enten 800*600 eller 1024*768). Et site der resizer sig selv alt afhængig ag brugernes opløsning kan give alt for mange uhensigsmæssigheder.
Avatar billede Slettet bruger
26. maj 2006 - 21:48 #2
Er der nogen med andre forslag??
Avatar billede mclemens Nybegynder
26. maj 2006 - 22:22 #3
uddrag af .htaccess fil:

RewriteEngine on
RewriteRule ^([0-9a-zA-Z/-]+)/$ index.php
RewriteRule ^([0-9a-zA-Z/-]+)/index.php index.php




uddrag af kode fra index.php

<?php


/* Opstart af cookies */
session_start();



/* Vælg opløsnings størrelse */
if(($_SERVER['HTTP_HOST']=="localhost")||($_SERVER['HTTP_HOST']=="www.hemlig_-_pt.com")||($_SERVER['HTTP_HOST']=="800.hemlig_-_pt.com")||($_SERVER['HTTP_HOST']=="800js.hemlig_-_pt.com")){$resolution=800;$logosize="f/hemlig_-_pt.gif";}else{$resolution=1024;$logosize="f/hemlig_-_pt2.gif";}



/* Valg af Javascript side eller almindelig side */
if(($_SERVER['HTTP_HOST']=="800js.hemlig_-_pt.com")||($_SERVER['HTTP_HOST']=="1024js.hemlig_-_pt.com"))include"shid/js.php";else include"shid/nojs.php";


?>

ens i både nojs og js.php:
/* Inkluder head samt metatags */
include"head/mainheader.php";


- lidt fra nojs.php <- den er included fra start af:
<?php

echo"<script language=\"javascript\"><!--
if(screen.availWidth==800)document.write(\"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;URL=http://800js.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\\\">\");
else if(screen.availWidth>=1024)document.write(\"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;URL=http://1024js.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\\\">\");
//--></script>";

?>

lidt fra js.php <- er included afhængig af subdomæne

<?php

if($resolution=="800")echo"<script language=\"javascript\"><!--
if(screen.availWidth==1024)document.write(\"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;URL=http://1024js.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\\\">\");
//--></script>";

if($resolution=="1024")echo"<script language=\"javascript\"><!--
if(screen.availWidth==800)document.write(\"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;URL=http://800js.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\\\">\");
//--></script>";

echo"<noscript><meta http-equiv=\"Refresh\" content=\"0;URL=http://www.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\"></noscript>";

?>


lidt fra mainheader.php:

<?php

<link rel=\"stylesheet\" type=\"text/css\" href=\"/res".$resolution.".css\" /><title>hemlig_-_pt: ".$hemlig_-_pttags."</title>";}

?>


og så to forskellige css filer afhængig af brugerens opløsning (res800.css og res1024.css med ovenstående... - 100% styr og kontrol over sine css koder og ingen inline css så burde det være snildt nok

... jeg kan desværre ikke komme med yderligere kode end ovenstående ... og kan heller ikke komme ind på hvad den skal bruges til ... bemærk enkelte rettelser er lige tilføjet i koden og koden er 2-3 måneder gammelt da dette site sikkert kun er noget jeg udvikler fuldt ud (mangler et par php moduler og en masse kundesupport, ajax m.v. for at slå en lidt stor konkurrent på det ikke nævnte marked) - så det bliver kun hvis jeg vælger at skifte min branche...

- men en basering på koden ovenover med 2 stylesheets burde være muligt for alle der har lysten til det ... der skal nok laves lidt matematik på php siden af hensyn til evt. billeder på sitet også ellers skal man lave seperate billeder hvor $variablen skifter sti baseret på $resolution...


Mvh, Clemme
Avatar billede mclemens Nybegynder
26. maj 2006 - 22:24 #4
hvis du bruger asp ... håber jeg du evt. andre også kan inspireres
lidt ud fra php koden da jeg aldrig har åbnet en asp bog ... :)
Avatar billede mclemens Nybegynder
26. maj 2006 - 22:27 #5
uhm, efter min viden p.t. i javascript kan jeg se at den javascript relocater er helt forkert, men sådan går det jo når man er newbie når man laver en ting...

document.write(\"<meta http-equiv=\\\"Refresh\\\" content=\\\"0;URL=http://800js.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\\\">\");

^ Skal nok rettes til noget i denne stil i de forskellige afsnit:

window.location.href=\"http://800js.hemlig_-_pt.com".$_SERVER['REQUEST_URI']."\";
Avatar billede mclemens Nybegynder
26. maj 2006 - 22:33 #6
[ der skal nok laves lidt matematik på php siden af hensyn til evt. billeder på sitet ] - tænker her på inline width og height attributter... divideret med 800 pixels width og ganget op med 1024 pixels og nedrunding... foretrækker dog seperat ekstra billede selv :)
Avatar billede mclemens Nybegynder
26. maj 2006 - 22:40 #7
men som keysersoze... Man skal have hår på brystet da det godt kan blive en css mæssig udfordring - med screendumps af skærmbilledet i 800x600 indsættelse i maleprogram og forstørrelse til 1024x768 eller mere og opløsning på skærmen øges, kopi af nuværende css fil til 800x600 og så igang med rettelse af filen til screendump svarer overens med websitet med den nye css fil...

Dertil kommer jo også uhensigtmæssigheder som evt. includede javascript, der baserer sig på pixel angivelser, der muligvis skal rescriptes, så de enten er dynamiske eller, så der er to seperate script, der igen er afhængig af $resolution variablen.

- Og user uploadede billeder eller filer ...

... Og hovedpinen i at rette i to css filer ...
Avatar billede mclemens Nybegynder
26. maj 2006 - 22:41 #8
Edit: men som keysersoze (siger) ...
Avatar billede Slettet bruger
28. maj 2006 - 18:34 #9
...mh
Kan godt se det kan blive lidt langhåret
..
Men grundlæggende optimere du til 800px og til 1024px
hvor du så har foskellige css filer

Hvad med header filen den skal vel også være forskellig i de to opløsninger??
Avatar billede mclemens Nybegynder
28. maj 2006 - 19:08 #10
Alle filer includes fra index.php filen derfor er variablen $resolution tilgængelig i alle includerede php filer (ud fra /* Vælg opløsnings størrelse */ ) og så i header.php echoes bare header - men istedet for et fast filnavn til css defineringen bruges $resolution til at angive css filen, der skal bruges ...

- Derudover har jeg også i header filen, så hvis det er en js subdomæne der requestes, så kommer der en noindex og nofollow på istedet ... I bund og grund er det blot det at have 2 css filer og 2 forskellige directorater med billeder afhængig af opløsning - den js relocator er jo kun for at folk ikke behøver trykke på en knap for at skifte subdomæne ...

- du kan selvfølgelig sikkert også include et javascript der skifter css filen ... det er sikkert ligeså godt, medmindre man vil have to forskellige filer - en til søgemaskiner (nojs.php) og en til brugerne (js.php) hvor forskellen ligger i at den ene har lidt js og den anden outputter istedet en masse html...
Avatar billede mclemens Nybegynder
28. maj 2006 - 19:17 #11
Hvis alt design kørte via css og man ikke havde behov for 2 filarkiver eller php til at dividere billedets størrelse med 800 og gange med de 1024 for herefter at nedrunde kunne man køre denne css fil - det er nok ikke altid nok ... men giver jo mulighed for at skifte mellem css filerne... (indsat lige før slutningen af head)

<script type="text/javascript">
window.onload=function(){chkwin();}
function chkwin(){
if(screen.Width>800){
  chklink=document.getElementsByTagName("link");
  for(i=0;i<chklink.length;i++)if(chklink[i].rel=="stylesheet"){
  chklink[i].href=chklink[i].href.replace("800","1024");
  }
}
}
</script>

eller måske bare denne

<script type="text/javascript">
if(screen.Width>800){
  chklink=document.getElementsByTagName("link");
  for(i=0;i<chklink.length;i++)if(chklink[i].rel=="stylesheet"){
  chklink[i].href=chklink[i].href.replace("800","1024");
  }
}
</script>
Avatar billede mclemens Nybegynder
28. maj 2006 - 19:19 #12
Næste løsning er selvfølgelig bare at køre % defineringer på div m.v. i sin css istedet - men det er jo ikke altid at man får den bedste løsningen ud af det :/
Avatar billede Slettet bruger
30. maj 2006 - 17:12 #13
Tak mclemens
Du skal have points
Avatar billede mclemens Nybegynder
30. maj 2006 - 17:28 #14
- så lidt ... her er et svar :)
Avatar billede mclemens Nybegynder
30. maj 2006 - 17:49 #15
- og tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester