So entfernen Sie 3D-Rahmen im IE8 mit DOCTYPE XHTML?
Das problem:
Hier ist, was ich tun
body {
border: 0;
}
wie hier vorgeschlagen: Entfernen die Grenze von WebBrowser-Steuerelement
Aber dies funktioniert nur, wenn wir mit dem folgenden doctype:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Wenn doctype geändert
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
den fiesen Grenze gehen nicht mehr Weg!
Aber ich muss den XHTML-doctype, um für "position: fixed" zu arbeiten, DH.
Irgendwelche Vorschläge?
Code:
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<title>Borders, Go Away!</title>
<link href="styles.css" type="text/css" />
</head>
<body>
</body>
</html>
CSS:
body {
border: 0;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK, es scheint, gibt es keine Möglichkeit den Rahmen zu entfernen von CSS beim XHTML-DOCTYPE verwendet, in Internet Explorer.
Ich landete Umsetzung GetHostInfo-Methode der IDocHostUIHandler-Schnittstelle des WebBrowser-Steuerelement/component in meinem desktop-app, wie in diesem Beispiel in Delphi zeigt:
Rahmenlose Web-Browser
Und hier ist eine weitere damit zusammenhängende Frage hier auf StackOverflow:
Entfernen Sie die Grenze auf ie activex control
Ich denke, es ist aufgrund von Vererbung, die Sie verwenden sollten
border:0
für jedes element, das Sie entfernen möchten Grenzen.border
ist nicht geerbt, so eine Einstellung an den Körper wie pro Ihre Beispiel wird nur auf die Rahmenart desbody
element selbst.Wenn Sie wollen alles verliert seine Grenze, indem Sie standardmäßig verwenden soll
*
was ist der CSS-wildcard:Jedoch nur wenige Elemente tatsächlich haben Grenzen standardmäßig (vor allem
tables
etc, aber auchimg
wenn es in einera
), so können Sie es vorziehen, die Liste nur die Elemente specificially:Es ist mehr lesbar, so als
*
, und wahrscheinlich eine bessere Praxis zu.Hoffe, das hilft.
Auf IE 9 und IE 11 habe ich beobachtet, dass der 3D-Rand ist immer da, wenn die Seite hat einen
<!DOCTYPE html>
. Es gibt absolut keine Möglichkeit, es zu deaktivieren mit CSS. Ich versuchte dies ohne Erfolg:Achtung: Dieses problem wird nur angezeigt, wenn Sie das einbetten Internet Explorer in ein C++ - Projekt (
CHtmlView
). Aber wenn Sie öffnen Sie die gleiche Webseite in einem eingebetteten Internet Explorer .NET 4.0 Projekt (System.Windows.Forms.WebBrowser
) der 3D-Rahmen wird nicht angezeigt. Und wenn Sie öffnen Sie die gleiche Webseite im Internet Explorer selbst (iexplore.exe) der 3D-Rahmen wird auch nicht angezeigt.Aber ich fand eine einfache Lösung, wenn Sie den IE in einem MFC-Projekt. MFC realisiert bereits die
IDocHostUIHandler
die erforderlich ist für, die.Leiten Sie eine Klasse von
CHtmlView
und überschreibenOnGetHostInfo()
:Header:
Umsetzung:
und die blöde 3D-Rahmen Weg!!!
Alternative: verwenden Sie einen hintergrund für die Tabelle, die ein weiterer hintergrund für die Zelle und cellspacing.