Web-TorMedlem sedan nov. 200013 890 inlägg 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 Web-TorMedlem sedan nov. 200013 890 inlägg 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. :)
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
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 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 har du kollat in IE7 scripten?
http://dean.edwards.name/IE7/
mv icaaq
Web-TorMedlem sedan nov. 200013 890 inlägg
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 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 Ä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 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 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 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.
jarvkloMedlem sedan juli 20013 378 inlägg Hmm...
Nu ser jag vad du menar... Intressant problematik :P