Avatar billede steen_hansen Forsker
06. september 2006 - 22:28 Der er 55 kommentarer og
1 løsning

1px problem

Nedenstående CSS/HTML burde være så simpelt, men det giver en afvigelse på 1px i hhv. FF og Mozilla kontra MSIE og opera; tabellen burde være på 990px, som den vises i MSIE og Opera, men den er kun på 989px i hhv. FF og Mozilla. Hvorfor?


CSS:

html, body {
height: 100%;
margin: 0px;
padding: 0px;
background-color: #d7d7d7;
font-family: verdana, helvetica, tahoma, sans-serif, arial;
color: black;
font-style: normal;
font-weight: normal;
font-size: 11px;
}
.maintable {
width: 990px;
padding: 0px;
margin: 0px auto;
border-collapse: collapse;
border: 1px solid #b7b7b7;
}
.maintable td {
padding: 0px;
}


HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>
<!-- #include virtual="/includes/_header.asp" -->
<title>Titel</title>
</head>

<body>

<table class="maintable">
    <tr>
        <td>Test</td>
    </tr>
</table>

</body>

</html>
Avatar billede moocher Nybegynder
06. september 2006 - 22:36 #1
spacing ?

Plejer slev at sætte padding og spacing til 0 når det er en normal tabel :)
Avatar billede steen_hansen Forsker
06. september 2006 - 22:40 #2
Hm? Jeg prøver så vidt muligt at undgå gammel HTML, og istedet CSS. Men der er måske noget om det :o)

Afventer lige og ser, om der ikke er andre, der er rendt ind i det problem. Med så mange hjemmesider må der da være andre end mig, der er stødt på dette? Det har virkelig voldt mig problemer i lang tid. Det er irriterende, så lille problemet er - men det er MEGET irriterende, at det vises forskelligt, når det i teorien burde være lige ud af landevejen :o/
Avatar billede steen_hansen Forsker
06. september 2006 - 23:01 #3
Desuden forsvinder border-top i både FF og Mozilla, når mit CSS ser ud som det gør ....?
Avatar billede mclemens Nybegynder
06. september 2006 - 23:22 #4
Ved ikke om der er en bedre måde at gøre det på :/
... Det er åbenbart border-collapse:collapse; som FF
knækker ved - den foretrækker spacing istedet ... mens
IE vil have border-collapse (om det er fordi IE ikke understøtter
spacing er nok sandsynligt ... men jeg er ikke sikker på at det er derfor ...)



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Titel</title>

<style type="text/css">

html, body {
height: 100%;
margin: 0px;
padding: 0px;
background-color: #d7d7d7;
font-family: verdana, helvetica, tahoma, sans-serif, arial;
color: black;
font-style: normal;
font-weight: normal;
font-size: 11px;
}


.maintable {
width: 990px;
padding: 0px;
margin: 0px auto;

border-spacing:0px; /* border-spacing istedet for border-collapse til Firefox - IE får sin border-collapse længere nede */

border: 1px solid #b7b7b7;
}

.maintable td {
padding: 0px;
}

</style>

<!--[if IE]><style type="text/css">.maintable{border-collapse:collapse;}</style><![endif]-->

</head>

<body>

<table class="maintable"><tbody>
<tr><td>Test</td></tr>
</tbody></table>

<div style="width:990px;background:#f00;margin:0px auto;">Test div</div>

</body></html>
Avatar billede steen_hansen Forsker
06. september 2006 - 23:27 #5
Jeg prøver lige, mclemens. Men iflg. http://www.w3.org/TR/CSS21/box.html burde det kunne lade sig gøre?
Avatar billede mclemens Nybegynder
06. september 2006 - 23:29 #6
Det rettede vist tabel border top problemet samtidig ... :/
Hmmm, har aldrig set problemet før, men har heller ikke brugt
css sammen med tabeller (skiftede tabellerne ud samtidig med at
jeg skiftede til css... Jeg havde haft "tendens" til at nørde for
meget med colspan og rowspan samt spacer elementer og alt for mange nestede tabeller)
Avatar billede mclemens Nybegynder
06. september 2006 - 23:30 #7
[ Men iflg. http://www.w3.org/TR/CSS21/box.html burde det kunne lade sig gøre? ]
Kigger lige, men IE er ikke helt css understøttende ... og det kan måske
være problemet, indrømmer at jeg ikke ved meget om css til tabeller :P
Avatar billede mclemens Nybegynder
06. september 2006 - 23:32 #8
Der er noget om border-spacing her (scroll lidt ned)
http://www.w3.org/TR/CSS21/tables.html#propdef-border-spacing
Avatar billede steen_hansen Forsker
06. september 2006 - 23:32 #9
Ok, der skal så tjekkes på, om browseren er MSIE, eller om det er en hvilken som helst anden browser end MSIE? Opera og MSIE plejer at følges nogenlunde ad i dén henseende. Vil det ikke blive omstændigt? Og hvordan skal der tjekkes for MSIE? Jeg er ingen ørn til JavaScript :o)
Avatar billede mclemens Nybegynder
06. september 2006 - 23:34 #10
<!--[if IE]><style type="text/css">.maintable{border-collapse:collapse;}</style><![endif]-->
^ - Det er den anbefalede måde at checke efter IE iflg. ms ... finder lige et link ...
Har Opera samme problem? ... Tester om lidt hvis det er ...
Avatar billede steen_hansen Forsker
06. september 2006 - 23:35 #11
Er der fordel i at benytte <div></div> istedet for tables? Der har været indtil flere debatter vedr. tabeller kontra divs.

En ulempe er, at jeg ikke har den store forstand på med at placere divs :o)
Avatar billede mclemens Nybegynder
06. september 2006 - 23:38 #12
Se [ Using Conditional Comments ] Næsten helt i bunden herinde (andre css hacks til at ramme IE med ophører snart da IE snart understøtter mere css):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/cols/dnexpie/ie7_css_compat.asp
Avatar billede steen_hansen Forsker
06. september 2006 - 23:40 #13
Ok, jeg vidste ikke det var så simpelt :o) (Hvad er "hacks"?)
Avatar billede mclemens Nybegynder
06. september 2006 - 23:46 #14
[ Er der fordel i at benytte <div></div> istedet for tables? ]
Det afhænger af rigtig mange ting - her i mest
betydningsfulde rækkefølge (efter min mening):

1. Hvad passer dig bedst, hvis du har styr på tabeller og er
ekspert på det område så vil det være nemmest at bruge dem.

2. Hvad har din løsning behov for ? Er det nødvendigt at man udnytter
tabellers evne til at aligne td og køre hen over flere rækker samtidig
med at det strækker andre td elementer?

... Men lidt legen med div's skader ikke, og det kunne jo være at man synes det var lidt sjovere i nogle tilfælde ... (jeg gik igang med div's og css i midten af sidste år og er lidt lettet over at have skiftet, men som sagt en smagssag og afhænger lidt af designet og behovet for elementernes evner) - Div's har f.eks. det med position:relative; som jeg ikke synes at jeg kan få til at virke med tabeller ?)


[ Der har været indtil flere debatter vedr. tabeller kontra divs. ]
Problemet ved debatterne er bare altid, der er ikke
et gyldent svar, det afhænger af behovet ...


[ En ulempe er, at jeg ikke har den store forstand på med at placere divs :o) ]
Det samme galdte her jeg har virkelig siddet og rodet med tabeller rowspan og colspans i '98-'00 og '05-medio '05 ... men, lidt læsning og test med de forskellige elementer skader aldrig... Men skal aldrig være bange for at prøve noget nyt - det eneste man kan miste er tid ;)
Avatar billede steen_hansen Forsker
07. september 2006 - 00:04 #15
Det eneste, jeg gerne vil kunne lave, er en total styring af mine tabeller. Jeg er - som du - også ked af de lidt for mangede nestede tables, som man hurtigt kan rode sig ud i ... men det er jo enkelt at forenkle det, hvis man bare tager sig tiden til at gennemtænke det først - og det sparer tid i sidste ende, som vi alle ved :o)

Jeg ønsker at kunne placere tekst, billeder og grafik hvor jeg ønsker det skal være. Og jeg ønsker at kunne styre helt præcist, så det bliver ens i MSIE, FF, Mozilla og Opera. Jeg tror de fire browsere dækker det meste.

For det meste følges hhv. FF/Mozilla og MSIE/Opera ad. Men det irriterer mig grænseløst, at der altid er bøvl med at få det rigtigt. Virker det i FF/Mozilla, virker det som regel ikke i MSIE/Opera - og omvendt.

Det er begyndt at tage for meget tid, og jeg er begyndt at have for meget fokus på det, fordi jeg ikke kan få det til at passe. Jeg har ladet mig distrahere fra det essentielle lige i øjeblikket; nemlig at få lavet de sider. Jeg har lidt svært ved at abstrahere, og føler det skal på plads, før jeg kan komme videre. Jeg benytter nemlig også noget grafik som baggrund i en menu. Grafikken har en fastsat bredde, og derfor er det så tydeligt, så tydeligt, når borderen i FF/Mozilla er 1px mindre i bredden end den tiltænkte.

For at tage udgangspunkt i mit spørgsmål, så prøver jeg at få en tabel på 990px med en farvet border (1px solid). Jeg vil prøve dine forslag af i morgen. Jeg skal nemlig tideligt op i morgen, og er træt. Håber du kigger forbi i morgen aften. Vi snakkes - og foreløbig 1000 tak :o)
Avatar billede steen_hansen Forsker
07. september 2006 - 00:10 #16
Jo, det virker sq i alle 4 browsere, og border-top problemet er løst. Smid lige et svar, mclemens. Jeg håber du har givet mig løsningen :o)
Avatar billede mclemens Nybegynder
07. september 2006 - 00:11 #17
[ (Hvad er "hacks"?) ] Hacks er et udtryk der er gået fra sin oprindelige
betydning til at betyde noget der har noget med en kriminel aktivitet at gøre.
Det er derfor et dumt ord at bruge med når jeg skriver ordet css hack er det fordi
at det hedder et css hack :/ Et css hack går ud på at man "omgår" en normal procedure
hvor alle browserne ville få samme css, til at det kun er en browser der fik css tildelingen. Et hack kan f.eks. betyde:

- At man får evig liv i et spil via. en snydekode

- At man får programmet til at det laver noget det ikke skulle kunne..
  - a) I det ene tilfælde kan dette være noget som generalt forbedrer programmet altså patcher programmet (f.eks.: http://tech.tailoredweb.com/simple-upload-53.php?forum=simpleupload&func=read&page=5&id=188 vs. http://www.hol.dk/traad.asp?fID=6&tID=326206 ) så det har flere features eller lignende / eller man lukker et sikkerhedshul.
  - b) I det andet tilfælde være noget som ikke var ønskbart skulle ske i / med programmet ... altså den betydning ordet hack har fået med tiden

- At man omgår teknikken i programmet via specielle kommandoer som med disse css "problemknusere" / "hacks" ... og mange andre lignende ting.

...

Så er der selvfølgelig ordet crack og cracking og det er så betegnelsen for noget der får programmet til at foretage noget det ikke er beregnet til ... f.eks. cracking af en systemsoftware så en der kommer et kritisk sikkerhedhul o.s.v. o.s.v.
Avatar billede mclemens Nybegynder
07. september 2006 - 00:11 #18
Ok, her er lige et svar :o)
Avatar billede steen_hansen Forsker
07. september 2006 - 00:16 #19
Jeg kender til alle ordene, men havde ikke hørt om hack i forbindelse med CSS :o)

Du er dagens helt i skysovs, og du er hermed med i min aftenbøn fremover, mclemens. Mange tak :o)
Avatar billede steen_hansen Forsker
07. september 2006 - 00:26 #20
Der er et lille-bitte problem i forhold til Opera:

Hvis jeg tilføjer dette til mit CSS:

.maintable {
width: 990px;
padding: 0px;
margin: 0px auto;
border-spacing: 0px;
border: 1px solid #b7b7b7;
}
.maintable td {
padding: 0px;
}
.tdbanner {
width: 990px;
height: 90px;
padding: 0px;
}


Og mit HTML:

<table class="maintable">
    <tr>
        <td class="tdbanner">Test</td>
    </tr>
</table>


bliver tabellen 1px lavere i Opera, end i de 3 andre. Nogen logisk forklaring på det?

Håber du gider hjælpe i morgen. Lige nu er jeg ihvertfald på vej i seng :o)
Avatar billede mclemens Nybegynder
07. september 2006 - 00:26 #21
Hehe, velbekom og tak for point :o)
Her er lige et div eksempel som er lidt besværligt (læs: umuligt for mig)
At lave uden div's eller evt. javascript som ikke er optimalt ...

http://www.eksperten.dk/spm/729769#rid6409306 (eksempel med css hacket body > #middle som IE ikke forstår p.t. - det forstår den i IE 7 ... )

vs.

http://www.eksperten.dk/spm/729769#rid6409597 (IE conditional css - kan også kaldes for en slags css hack da man kun rammer den ene browser specifikt)

vs. den med tabeller som ikke virker alene

http://www.eksperten.dk/spm/729769#rid6409615

og den tabel der støttes op med div's

http://www.eksperten.dk/spm/729769#rid6409628 (mangler at fjerne lidt tabel css i den)


... Bare et eksempel på det med tabeller vs. divs (06/09-2006 23:46:32) ...
Avatar billede mclemens Nybegynder
07. september 2006 - 00:27 #22
[ Håber du gider hjælpe i morgen. Lige nu er jeg ihvertfald på vej i seng :o) ]
Fornuftigt nok, har lige et par pakker, der skal pakkes - ser lige om jeg når den inden jeg hopper under dynen ;)
Avatar billede mclemens Nybegynder
07. september 2006 - 01:03 #23
[ bliver tabellen 1px lavere i Opera, end i de 3 andre. Nogen logisk forklaring på det? ]
I Opera 9.00 har tabellen 92px højde ligesom i IE, og FF ... kast evt. dit versions nr. eller opgrader hvis det er lavere ... (Opera har måske rettet et par bugs? - Opacity kom f.eks. først i 9.0 ... men, det er selvfølgelig også muligt at der er flyttet bugs ind :/ )

- Det eneste jeg måske synes er overflødig i css delen er dobbelt erklæring af padding:0px; i både .maintable td { og .tdbanner { ... men om det er det der driller din udgave af Opera ved jeg ikke lige ...
Avatar billede mclemens Nybegynder
07. september 2006 - 01:24 #24
Overså helt [ 07/09-2006 00:04:49 ] i farten...
Helt enig, der kan gå lang tid med at skubbe pixels rundt, men
når designet er låst ordentligt fast så kører det bedst så pixelskubning er
nødvendigt til tider - især ved udskårede baggrundsbilleder ... :)

[ Håber du kigger forbi i morgen aften.
Vi snakkes - og foreløbig 1000 tak :o) ]
Jeps, kigger forbi iaften ;)
Avatar billede steen_hansen Forsker
07. september 2006 - 21:53 #25
Jeg har lige skrevet et indlæg, som ikke blev postet, prøver igen :o/

Opera, version 9.01

Højde på tdbanner:

Opera: 91px
MSIE: 92px
FF: 92px
Mozilla: 92px

Det virker som om, at border-left (1px) + border-right (1px) ikke skal inkluderes i den samlede bredde. Efter hvad jeg kan regne ud, burde tabellens bredde være 992px, hvis indholdet skal have 990px. Men det forholder sig åbenbart anderledes i højden?
Avatar billede mclemens Nybegynder
07. september 2006 - 22:17 #26
[ Det virker som om, at border-left (1px) ... Men det forholder sig åbenbart anderledes i højden? ] Det har du helt ret i - undrer mig lidt over at den ikke udvider tabellen med 2 px i bredden også ... Problemet lægger vel i:

- At den får at vide at tabellen er 900px bred - nåh det er ok.
- Hmmm. der er et indvendigt element (.tdbanner) der defineres til at have en bredde på 900px - nåh det glemmer browseren alt om at beslutter sig for at overholde tabellens definerede width istedet ... Læg mærke til at den ikke vil udvide bredden i td kolonnen til mere end det afsatte (her er der afsat 988px i bredden - så selv med denne css:

.tdbanner {
width: 2000px;
height: 90px;
padding: 0px;
}

Vil den ikke udvide tabellen...

... Så kommer vi til punktet om at højden ikke reagerer på samme måde ...

.maintable {
width: 990px;
padding: 0px;
margin: 0px auto;
border-spacing: 0px;
border: 1px solid #b7b7b7;
}

^ - Læg mærke til at højden på selve tabellen ikke er defineret - du har defineret den på td elementet istedet ... derfor vil højden på tabellen blive indvendige elementers samlede højde plus tabellens egen højde (en højde på en tabel lader sig ikke låse som med en div) ...

... Så egentlig er der ingen fejl i håndteringen af css width og height på de punkter - det eneste der måske er problemet er Opera ... jeg prøver lige at opgradere :/


... Hvis det jeg skrev virkede som ren volapyk (det har mine sætninger "tendens" til at virke som) så check dette eksempel:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Titel</title>

<style type="text/css">

html, body {
height: 100%;
margin: 0px;
padding: 0px;
background-color: #d7d7d7;
font-family: verdana, helvetica, tahoma, sans-serif, arial;
color: black;
font-style: normal;
font-weight: normal;
font-size: 11px;
}

.maintable {
width: 990px;
height: 90px;
padding: 0px;
margin: 0px auto;
border-spacing:0px;
border: 1px solid #b7b7b7;
}

.maintable td {
padding: 0px;
}

</style>

<!--[if IE]><style type="text/css">.maintable{border-collapse:collapse;}</style><![endif]-->

</head>

<body>

<table class="maintable"><tbody>
<tr><td class="tdbanner">Test</td></tr>
</tbody></table>

<div style="width:990px;background:#f00;margin:0px auto;">Test div</div>

</body></html>

^ - højden og bredden matcher


vs.:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Titel</title>

<style type="text/css">

html, body {
height: 100%;
margin: 0px;
padding: 0px;
background-color: #d7d7d7;
font-family: verdana, helvetica, tahoma, sans-serif, arial;
color: black;
font-style: normal;
font-weight: normal;
font-size: 11px;
}

.maintable {
width: 990px;
padding: 0px;
margin: 0px auto;
border-spacing:0px;
border: 1px solid #b7b7b7;
}

.maintable td {
padding: 0px;
}

.tdbanner{height:88px;}

</style>

<!--[if IE]><style type="text/css">.maintable{border-collapse:collapse;}</style><![endif]-->

</head>

<body>

<table class="maintable"><tbody>
<tr><td class="tdbanner">Test</td></tr>
</tbody></table>

<div style="width:990px;background:#f00;margin:0px auto;">Test div</div>

</body></html>

^ - højden og bredden matcher ... tdbanner er 2px mindre da den ikke defineres som højden på tabellen men en td istedet - og derfor tages border ikke med i tabellens højde beregning før bagefter beregningen af indvendige elementers højde

vs.:



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Titel</title>

<style type="text/css">

html, body {
height: 100%;
margin: 0px;
padding: 0px;
background-color: #d7d7d7;
font-family: verdana, helvetica, tahoma, sans-serif, arial;
color: black;
font-style: normal;
font-weight: normal;
font-size: 11px;
}

.maintable {
width: 990px;
padding: 0px;
height:90px;
margin: 0px auto;
border-spacing:0px;
border: 1px solid #b7b7b7;
}

.maintable td {
padding: 0px;
}

.tdbanner{height:200px;width:2000px;}

</style>

<!--[if IE]><style type="text/css">.maintable{border-collapse:collapse;}</style><![endif]-->

</head>

<body>

<table class="maintable"><tbody>
<tr><td class="tdbanner">Test</td></tr>
</tbody></table>

<div style="width:990px;background:#f00;margin:0px auto;">Test div</div>

</body></html>

^ - height defineret på tabellen kan ikke låses - det kan width ...
Avatar billede mclemens Nybegynder
07. september 2006 - 22:31 #27
Denne her giver en højde på 92px i Opera 9.01 , PC når jeg tester ...



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head><title>Titel</title>

<style type="text/css">

.maintable {
width: 990px;
padding: 0px;
margin: 0px auto;
border-spacing:0px;
border: 1px solid #b7b7b7;
}

.maintable td {
padding: 0px;
}

.tdbanner {
width: 990px;
height: 90px;padding: 0px;
}

</style>

<!--[if IE]><style type="text/css">.maintable{border-collapse:collapse;}</style><![endif]-->

</head>

<body>

<table class="maintable"><tbody>
<tr><td class="tdbanner">Test</td></tr>
</tbody></table>

</body></html>



... Kan man ændre parsing af elementer eller definere specielle styles i Opera - altså måske have ændret håndteringen af tabel elementer ved en indstilling ... eller bruger du Opera mac ?
Avatar billede mclemens Nybegynder
07. september 2006 - 22:31 #28
( har målt via print screen og paint )
Avatar billede steen_hansen Forsker
09. september 2006 - 16:51 #29
Jeg gik ned forleden aften, sorry, mclemens. Jeg prøver at starte op i fejlsikret tilstand, og kigger på det senere. Men foreløbigt tak, det ser da lovende ud?

Nej, jeg har IBM-kompatibel PC/Win XP. Måler selv i Photoshop.
Avatar billede mclemens Nybegynder
09. september 2006 - 16:58 #30
[ det ser da lovende ud? ] Ikke helt, jeg har nemlig
ikke selv fået den til at give de 91px i Opera :/

- Den har hele tiden vist 92px ved mig ... Men måske
er det noget andet der "lapper" ind over evt. en anden
css definering ? Men prøv og se om test filen "kikser".
Avatar billede steen_hansen Forsker
13. september 2006 - 00:02 #31
mclemens, kan man lave en If-Else-End if?

<!-- [if IE] -->

<!-- [...] -->

<! [endif] -->
Avatar billede steen_hansen Forsker
13. september 2006 - 00:09 #32
<!--[if IE] -->
    <% strClass = "tdbannerie" %>
<!--[else]-->
    <% strClass = "tdbanner" %>
<![endif]-->

- virker desværre ikke :/
Avatar billede mclemens Nybegynder
13. september 2006 - 00:10 #33
Ser ikke ud til det iflg. http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/ccomment_ovw.asp
- Det ser ud til at man kun har en if til rådighed (kan varieres så den rammer specielle versioner) - men endif er ret fast - lidt trist selvfølgelig ... :/
Avatar billede mclemens Nybegynder
13. september 2006 - 00:11 #34
Update, 13/09-2006 00:09:52 Virker ikke da du blander asp og markup sammen - kommentaren returnerer ikke noget til serveren om det skal være den ene eller den anden type ... men man kan vel måle efter browser typen i asp og så variere output (ved intet om asp)
Avatar billede mclemens Nybegynder
13. september 2006 - 00:13 #35
Avatar billede mclemens Nybegynder
13. september 2006 - 00:14 #36
I det tilfælde skal du så ikke variere class navnet - men lave en asp fil der leverer stylesheetet - og asp stylesheetet varieres så afhængig af om det er IE der skal bruge css delen til class="tdbanner" eller om det er en anden browser ...
Avatar billede steen_hansen Forsker
13. september 2006 - 00:15 #37
Det er jo perfekt, jeg bakser lidt med det. Jeg fik de 3 andre browsere til at opføre sig korrekt, men MSIE skulle selvfølgelig være på tværs.

Jeg roder med det, og har forhåbentlig noget positivt senere :o)
Avatar billede mclemens Nybegynder
13. september 2006 - 00:16 #38
Starten af min egen css fil ser sådan her ud (cssfilnavn.php)

<?php

/* Start komprimerering af css */
ob_start('ob_gzhandler');

/* Indstil Content-type */
header('content-type: text/css;charset=iso-8859-1');

/* Indstil cache af css til udløb ca. kl 3:00 */
header('Cache-Control: max-age='.((23-date('H'))*3600+(59-date('i'))*60+60-date('s')+10800));

?>html,body {margin:0px;padding:0px;}
html {background: #00f url("/a/bg.png") repeat-x fixed;}
body {font:bold 18px arial,sans-serif;color:#fff;}

a {color:#fff;}
a img {border:0px;}
a:hover {text-decoration:none;}

.uline {text-decoration:underline;}
.fl {float:left;}
.fr {float:right;}
.cp {cursor:pointer;}
.clearh {clear:both;height:10px;overflow:hidden;}
.mcxr {height:10px;font-size:2pt;width:100%;clear:both;}

#mcs {margin:0px auto;width:980px;padding:0px 10px;clear:both;}
#logo {margin:10px 0px;height:90px;text-align:center;}

.mcc {float:right;width:790px;}

#mlgo {float:left;width:112px;margin-bottom:10px;padding:0px 34px;height:27px;}
.ml {float:left;clear:left;width:188px;line-height:10px;}


<?php // Menuen
?>

... og så ville jeg kunne have varieret outputtet
som kom afhængig af hvad browser det var ...
Avatar billede mclemens Nybegynder
13. september 2006 - 00:17 #39
[ Jeg roder med det, og har forhåbentlig noget positivt senere :o) ] Ok :o)
Avatar billede steen_hansen Forsker
13. september 2006 - 00:17 #40
Hm? Man kan vel bare tjekke med scriptet, om det er MSIE, og derefter bestemme om class skal være lig tdbanner eller tdbannerie?
Avatar billede mclemens Nybegynder
13. september 2006 - 00:18 #41
Jep det kan du også :o)
Avatar billede mclemens Nybegynder
13. september 2006 - 00:18 #42
... og det er nok nærmest lettere :D
Avatar billede steen_hansen Forsker
13. september 2006 - 00:19 #43
Fedest, jeg leger videre :o)
Avatar billede mclemens Nybegynder
13. september 2006 - 00:20 #44
så:
<!--#include file="BrowserDetect.asp"-->

<% If Not IE Then %>
    <% strClass = "tdbannerie" %>
<% Else %>
    <% strClass = "tdbanner" %>
<% End If %>
Avatar billede mclemens Nybegynder
13. september 2006 - 00:20 #45
[ Fedest, jeg leger videre :o) ] Ok :o)
Avatar billede steen_hansen Forsker
13. september 2006 - 00:23 #46
Til andre interesserede (det virker):

<%
    Dim strUserAgent
    strUserAgent = UCase(CStr(Request.ServerVariables("HTTP_USER_AGENT")))

    If InStr(strUserAgent, "MSIE") Then
        IE = TRUE
    End If
%>

<td class="<% If IE = TRUE Then %>tdbannerie<% Else %>tdbanner<% End If %>">Test</td>
Avatar billede steen_hansen Forsker
13. september 2006 - 00:35 #47
Så ikke 13/09-2006 00:20:02 :o) Vi snakkes! :o)
Avatar billede mclemens Nybegynder
13. september 2006 - 00:36 #48
13/09-2006 00:23:16 er også bedre
end 13/09-2006 00:20:02 :)
Snakkes ;)
Avatar billede steen_hansen Forsker
15. september 2006 - 23:46 #49
Hej mclemens

Det har været lidt småt med tiden. Håber du stadig hænger på, du skal nok få point for det :o)

Nu er jeg startet forfra igen, og skal bare have sat højden på cellen 1px højere, hvis browseren hedder Opera. Hvorfor virker det script ikke?

<%
Dim strUserAgent
Dim Opera, Opera5

strUserAgent = UCase(CStr(Request.ServerVariables("HTTP_USER_AGENT")))

Opera = FALSE
Opera5 = FALSE
If InStr(strUserAgent, "Opera") Then
    Opera = TRUE
End If
If InStr(strUserAgent, "Opera 5") Or InStr(strUserAgent, "Opera/5") Then
    Opera5 = TRUE
End If
%>

Jeg går ud fra, at Opera 5 er versionsnummeret?
Avatar billede mclemens Nybegynder
16. september 2006 - 00:20 #50
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
Skriver Opera/9.01 (Windows NT 5.1; da) hos mig
... Ved ikke hvordan Opera 5 kørte men for at checke
på 9'eren må det vel være: If InStr(strUserAgent, "Opera/9") ?

- Jeg har ikke forstand på asp, men hvis du udskriver
strengen hvad skriver den så ?

... Jeg går ud fra at UCase konverterer til uppercase ... så måske ?

...

<%
Dim strUserAgent
Dim Opera, Opera5

strUserAgent = UCase(CStr(Request.ServerVariables("HTTP_USER_AGENT")))

Opera = FALSE
Opera5 = FALSE
If InStr(strUserAgent, "OPERA") Then
    Opera = TRUE
End If
If InStr(strUserAgent, "OPERA 5") Or InStr(strUserAgent, "OPERA/5") Then
    Opera5 = TRUE
End If
%>
Avatar billede mclemens Nybegynder
16. september 2006 - 00:22 #51
... Og hvis det er tilfældet er fejlen så også på
http://www.asp101.com/articles/thomas/dynamicstylesheets/default.asp
Avatar billede mclemens Nybegynder
16. september 2006 - 00:26 #52
((( edit: If InStr(strUserAgent, "Opera/9") ->
If InStr(strUserAgent, "OPERA/9")
hvis det med uppercase stemmer )))
Avatar billede steen_hansen Forsker
16. september 2006 - 01:26 #53
Det var sq mærkeligt, for den udskriver dette: Opera/9.01 (Windows NT 5.1; U; da)

<%=CStr(Request.ServerVariables("HTTP_USER_AGENT"))%>
Avatar billede mclemens Nybegynder
16. september 2006 - 01:30 #54
( Prøv det med uppercase ... 00:20:33 )
F.eks. til at teste strengen:

<%=UCase(CStr(Request.ServerVariables("HTTP_USER_AGENT")))%>
Avatar billede mclemens Nybegynder
16. september 2006 - 01:31 #55
Pudsigt nok med " U;" ved ikke om det er et
tilfælde - eller en indstilling der gør det ...
Avatar billede steen_hansen Forsker
18. september 2006 - 21:57 #56
Jeg har søgt på Google efter "Windows NT 5.1; U;", og her ser det ud som om, at fr, en-US, TR-1, en-GB er landekoder. Hvad U står for, ved jeg ikke.

Jeg TROR jeg er ved at have styr på det. Jeg tog en stump af koden og tjekkede på, om det var Opera, og så virkede det. Nu har jeg taget hele koden og inkluderet den i en fil, men så går det rigtigt skævt :D

Arbejder med det og vender tilbage med en samlet løsning til dem, der nu måtte være interesseret i det.
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