Das Problem
Sie müssen Markup in ein HTML-Dokument einfügen, und es muss auf eine bestimmte Weise aussehen. Darüber hinaus besitzen Sie dieses Dokument nicht, sodass Sie vorhandene Style-Regeln nicht ändern können. Sie haben keine Ahnung, wie die Stylesheets sein könnten oder wie sie sich ändern könnten.
Anwendungsfälle hierfür sind, wenn Sie eine anzeigbare Komponente für unbekannte Websites von Dritten bereitstellen möchten. Beispiele hierfür wären:
- Ein Anzeigetag
- Erstellung einer Browsererweiterung, die Inhalte einfügt
- Jede Art von Widget
Einfachste Lösung
Alles in ein iframe setzen. Dies hat seine eigenen Einschränkungen:
- Cross-Domain-Einschränkungen: Ihr Inhalt hat überhaupt keinen Zugriff auf das ursprüngliche Dokument. Sie können keine Inhalte überlagern, das DOM nicht ändern usw.
- Anzeige-Einschränkungen: Ihr Inhalt ist in einem Rechteck eingeschlossen.
Wenn Ihr Inhalt in ein Feld passt, können Sie Problem Nr. 1 umgehen, indem Ihr Inhalt ein iframe schreibt und den Inhalt explizit festlegt, um das Problem zu umgehen, da das iframe und das Dokument dieselbe Domäne teilen werden.
CSS-Lösung
Das Beste, was Sie tun können, ist, alle möglichen Eigenschaften explizit zu überschreiben und sie auf das zu ändern, was Sie für ihren Standardwert halten.
Auch wenn Sie überschreiben, gibt es keine Möglichkeit, sicherzustellen, dass eine gezielte CSS-Regel nicht Ihre überschreibt. Das Beste, was Sie hier tun können, ist, Ihre Überschreibungsregeln so spezifisch wie möglich auszurichten und zu hoffen, dass das übergeordnete Dokument sie nicht versehentlich übertrifft: Verwenden Sie eine obskure oder zufällige ID auf dem übergeordneten Element Ihres Inhalts und verwenden Sie !important für alle Werte der Eigenschaften.