Avatar billede per2edb Praktikant
27. april 2010 - 11:44 Der er 11 kommentarer og
1 løsning

Skærmbredde 2.

Jeg har en aspx side hvor jeg skal tilgå css afhængig af skærmbredden.
Hvordan forbinder jeg script og link??

<script language="Javascript">
var width = screen.width;  //valg mellem screen 800,1024,1280
var stylesheet = 1280; // standard
if (width < 1024 ) stylesheet = 800;
else if (width < 1280 ) stylesheet = 1024;
</script>

<link rel="stylesheet" href="'styles/'+'+stylesheet+'.css" type="text/css"/>

// Dette virker:  <link href="styles/1024.css" rel="stylesheet" type="text/css" />
Avatar billede dmdisco Nybegynder
27. april 2010 - 12:27 #1
<link rel="alternate stylesheet" type="text/css" href="/style1.css" title="style1" />
<link rel="alternate stylesheet" type="text/css" href="/style2.css" title="style2" />
<link rel="stylesheet" type="text/css" href="/style3.css" title="style3" />


function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

setActiveStyleSheet('style2');

så kan du bare ændre det så det passer til det du skal bruge
Avatar billede intenz Novice
27. april 2010 - 12:43 #2
Hvorfor brugte du ikke bare koden jeg skrev den i dit sidste spørgsmål?
http://www.eksperten.dk/spm/906591


<script language="Javascript">
var width = screen.width;  //valg mellem screen 800,1024,1280

var stylesheet = 1280; // standard
if (width < 1024 ) stylesheet = 800;
else if (width < 1280 ) stylesheet = 1024;

document.write('<link rel="stylesheet" href="'+stylesheet+'.css" type="text/css">');
</script>
Avatar billede Slettet bruger
28. april 2010 - 12:28 #3
Intenz' løsning er også dén jeg ville have foreslået i dette tilfælde.

Men dmdisco's er faktisk ret interessant - fordi den giver brugeren mulighed for selv at vælge
- efter f.eks at have resizet browservinduet eller noget.

"alternate stylesheet" - helt nyt for mig, og cool: http://www.alistapart.com/articles/alternate
Avatar billede olebole Juniormester
28. april 2010 - 13:44 #4
<ole>

Det er browserstørrelsen, der er interessant. Den afgøres ikke af skærmopløsningen, men brugerens foretrukne måde at bruge sin PC på. Personligt bruger jeg f.eks. yderst sjældent maksimerede vinduer  =)

/mvh
</bole>
Avatar billede Slettet bruger
28. april 2010 - 14:05 #5
Joh.. men den giver et godt indtryk af hvor store ens bogstaver bliver.
- som afhænger af opløsningen - uanset vinduets størrelse.

Hvis du sad på en lille 10" bærbar (eller en Android!) ville du sandsynligvis altid browse i max : )
Avatar billede per2edb Praktikant
28. april 2010 - 21:58 #6
Jeg kan simpelthen ikke komme ind i f.eks  styles/1024.css.
Du skriver document.write .... jamen giver det et "hop" til styles/1024.css ?
Jeg har så prøvet uden document.write .... men det virker heller ikke.
Der må være noget underforstået. Mine koder er herunder med de 2 udgaver af LINK.

<script language="Javascript">
var width = screen.width;  //valg mellem screen 800,1024,1280

var stylesheet = 1280; // standard
if (width < 1024 ) stylesheet = 800;
else if (width < 1280 ) stylesheet = 1024;

a)
<link rel="stylesheet" href="Styles/1024.css" type="text/css"/>;

b)
document.write('<link rel="stylesheet" href="    Styles/      '+stylesheet+'.css" type="text/css">');

</script>
Avatar billede Slettet bruger
28. april 2010 - 22:55 #7
Jeg tror dit problem er at du writer inden i <script>-sektionen.

Prøv dette i stedet for:

<script language="Javascript">
var width = screen.width  //valg mellem screen 800,1024,1280
var stylesheet = 1280 // standard
if (width < 1024 ) stylesheet = 800
else if (width < 1280 ) stylesheet = 1024

document.write('</'+'script><link rel="stylesheet" href="Styles/'+
+stylesheet+'.css" type="text/css">')
Avatar billede per2edb Praktikant
28. april 2010 - 23:13 #8
Kommer stadig ikke ind i css
Jeg har kopieret dit script 100% og ikke værken sat noget andet ind eller udeladt noget.
Har du alt med- eller er noget underforstået?

<script language="Javascript">
var width = screen.width  //valg mellem screen 800,1024,1280
var stylesheet = 1280 // standard
if (width < 1024 ) stylesheet = 800
else if (width < 1280 ) stylesheet = 1024

document.write('</'+'script><link rel="stylesheet" href="Styles/'+
+stylesheet+'.css" type="text/css">')
Avatar billede Slettet bruger
29. april 2010 - 00:15 #9
Så blev jeg jo lige nødt til at teste : )
Denne version virker hos mig:

<script language="Javascript">
var width = screen.width  //valg mellem screen 800,1024,1280
var stylesheet = 1280 // standard
if (width < 1024 ) stylesheet = 800
else if (width < 1280 ) stylesheet = 1024

document.write('<link rel="stylesheet" href="Styles/'+
+stylesheet+'.css" type="text/css">')

</script>

MEN jeg faldt over en fejl-mulighed:
- hvis din doctype er XHTML kan du slet ikke bruge document.write!

"Because of the way XML is defined, it is not possible to do tricks like this, where markup is generated by scripting while the parser is still parsing the markup.
You can still achieve the same effects, but you have to do it by using the DOM to add and delete elements."

Med andre ord - dmdisco's løsning.
Avatar billede per2edb Praktikant
29. april 2010 - 09:46 #10
Så virker det
Tak for hjælpen
Avatar billede per2edb Praktikant
29. april 2010 - 09:47 #11
Vil du lave det så jeg kan give point
Avatar billede Slettet bruger
29. april 2010 - 16:23 #12
Hvem mig ?
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