webForumDet fria alternativet

cellspacing i Explorer

13 svar · 401 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200013 890 inlägg
#1

Jag har en tabell med cellspacing="3". Jag har en inlänkad CSS-fil av typen media="print" och där skulle jag vilja ändra cellspacing till 0. Jag vet att CSS attributet cell-spacing inte funkar i Explorer och eftersom detta är en ren Explorer-applikation så måste det funka där.

Så nu letar jag efter någon slags workaround som funkar i Explorer 5.5+. CSS, Javascript, expression, HTC... ja, alla typer av fulhack är välkomna. :)

Engine^Medlem sedan dec. 20003 887 inlägg
#2

Jag skulle nog börja leta på https://www.456bereastreet.com/

Web-TorMedlem sedan nov. 200013 890 inlägg
#3

Men 456 Berea Street handlar väl mest om webbstandard? Och "webbstandard" och "Explorer" är ju inte direkt två saker som inte man brukar associera med varandra. ;)

Där går ju t.ex. att hitta:

I’ve used border-collapse:separate and border-spacing:10px; to add a bit of space between the boxes. This is the equivalent of using the cellspacing attribute.

Like I said, this does not work in Internet Explorer.

Men det är just IE-hack jag är ute efter. :)

m_soderlundMedlem sedan sep. 20026 425 inlägg
#4

Att sätta margin och padding till 0 för tabellrelaterade element (table, tr, td t.ex.) i en IE-specifik CSS-fil borde väl fungera?

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="ie.css" media="print" />
<![endif]-->
Engine^Medlem sedan dec. 20003 887 inlägg
#5

Web-Tor skrev:

Men det är just IE-hack jag är ute efter. :)

Precis, och det är ju något herr Johansson vet en hel del om ;)

zcorpanMedlem sedan dec. 20042 245 inlägg
#6

Kan du inte använda 'padding' istället för 'cell-spacing'? Eller 'border'? Jag vet att det inte är riktigt samma men det blir nog enklare. :)

Annars kan man kanske använda onbeforeprint och onafterprint med JScript för att ändra cellpadding="".

icaaqMedlem sedan okt. 20005 273 inlägg
#7

har du kollat in IE7 scripten?
http://dean.edwards.name/IE7/

mv icaaq

Web-TorMedlem sedan nov. 200013 890 inlägg
#8

Engine^ skrev:

Precis, och det är ju något herr Johansson vet en hel del om ;)

Jag letade överallt på 456 Berea Street men där hittade jag inte något... Någon som är bättre på att söka?

m_soderlund skrev:

Att sätta margin och padding till 0 för tabellrelaterade element (table, tr, td t.ex.) i en IE-specifik CSS-fil borde väl fungera?

Saken är den att jag har en sida där cellspacing="3" är hårdkodat och jag har inte någon möjlighet att ändra detta. Jag lyckas inte hitta någon CSS-väg för att ändra HTML-attributet cellspacing. That's the problem. ;)

zcorpan skrev:

Annars kan man kanske använda onbeforeprint och onafterprint med JScript för att ändra cellpadding="".

Det ser faktiskt ut att funka! :) Helst hade jag som sagt fixat detta med CSS eftersom alla andra "dags-att-formatera-för-papper" saker ligger i CSS-filen men jag är så desperat att jag är beredd att acceptera detta.

Jag väntar med att acceptera svar i några dagar så får vi se om det trillar in fler svar. :)

zcorpanMedlem sedan dec. 20042 245 inlägg
#9

Jag tänkte att nånting i stil med

table { behavior:expression((this.runtimeStyle.behavior="none")&&(this.cellPadding="0")); }

skulle funka, och det gör det för media screen men inte för media print. :( Det kanske går att klämma in onbeforeprint i stilmallen men jag vet inte vad man vinner på det. :)

[ins] eller snarare... det fungerar endast med media screen (eller media all), och då blir det även när man skriver ut. Du kan kanske använda kodraden ovan för att eliminera cellpadding i IE och använda

@media screen {
 td { padding:3px; }
}

istället för 'cell-spacing'? :) [/ins]

Web-TorMedlem sedan nov. 200013 890 inlägg
#10

Även detta borde ju funka (och gör det också på skärmen men inte på utskriften). :(

table {behavior:expression(this.cellSpacing="0")}
jarvkloMedlem sedan juli 20013 378 inlägg
#11

Hmm..

En fördel med MSIE är att den automagiskt drar ner just cellspacing till noll när man använder border-collapse:collapse... Iallafall MSIE6 (har ingen 5.5 att testa med till hands just nu)...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>Test</title>
  <style type="text/css">
  table {background-color: red}
  td {background-color:white}
  @media print {
    table {border-collapse:collapse;}
  }
  </style>
</head>
<body>
<table cellspacing="3" border="1">
<tr><td>hej</td><td>Hopp</td></tr>
<tr><td>hej</td><td>Hopp</td></tr>
</table>
</body>
</html>

Eller har jag missuppfattat vad du försöker göra ?

zcorpanMedlem sedan dec. 20042 245 inlägg
#12

Aaah, självklart! Det är dock inget "felbeteende" med IE; om ramarna ska kunna kollapsa kan det inte finnas något mellanrum mellan dem. Firefox och Opera gör likadant. :)

Web-TorMedlem sedan nov. 200013 890 inlägg
#13

För mig blev det inte någon större skillnad i IE 6.
Jag ökade till cellspacing 10 för att göra det lite tydligare.

collapse.gif
jarvkloMedlem sedan juli 20013 378 inlägg
#14

Hmm...

Nu ser jag vad du menar... Intressant problematik :P

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)