I'm creating a Chrome Extension that injects a HTML banner/overlay using JQuery into the current page.
I've noticed that some pages will affect the overlay I've created. This includes changing the margins/fonts/etc of the elements within the overlay. I've tried using unset but I'm still having the styling change.
I've created an example. When switching between google and stackoverflow the checkbox and its text moves.
Example
$("body").append(
"<div id='my-overlay'><div id='my-overlay-right'>" +
'<input type="checkbox" id="my-overlay-checkbox" name="my-checkbox" value="MyCheckbox"><label id="my-overlay-checkbox-text">This is a checkbox</label>' +
"<button id='my-overlay-close-button'>X</button></div></div>"
);
$("#my-overlay *").css({
all: "unset !important",
});
$("div#my-overlay").css({
all: "unset !important",
position: "fixed",
border: "1px solid black",
"margin-left": "-250px !important",
"margin-top": "0 !important",
"margin-bottom": "0 !important",
"margin-right": "0 !important",
left: "500px",
top: "-20px",
width: "500px",
height: "20px",
transform: "translate(0, 20px)",
"z-index": 10000,
"background-color": "rgba(256,0,0,0.8)",
transition: "opacity 0.3s, visibility 0.5s",
});
$("div#my-overlay-right").css({
all: "unset !important",
float: "right",
margin: "0 !important",
padding: 0,
});
$("input#my-overlay-checkbox").css({
margin: "1px !important",
padding: "0 !important",
});
$("label#my-overlay-checkbox-text").css({
all: "unset !important",
margin: "0",
padding: "0",
"font-weight": "normal",
"font-size": "12px",
"line-height": "1",
color: "white",
"font-family": "Verdana, Geneva, sans-serif",
});
$("button#my-overlay-close-button").css({
all: "unset !important",
"font-size": "16px",
margin: "1px 10px 0 15px !important",
padding: "0 !important",
"background-color": "Transparent",
"background-repeat": "no-repeat",
border: "none",
cursor: "pointer",
overflow: "hidden",
outline: "none",
color: "white",
});
What is the correct method of removing all styling from components inserted into a web page?
Update
I've tried adding a reset-this class and applying it to all of my elements. This has fixed the differences between google and stackoverflow but there are still some differences on other pages.
$("body").append(
"<div id='my-overlay' class='reset-this'><div id='my-overlay-right' class='reset-this'>" +
"<input type=\"checkbox\" id=\"my-overlay-checkbox\" class=\"reset-this\" name=\"my-checkbox\" value=\"MyCheckbox\"><label id=\"my-overlay-checkbox-text\" class=\"reset-this\">This is a checkbox</label>" +
"<button id='my-overlay-close-button' class='reset-this'>X</button></div></div>"
);
$(".reset-this").css({
animation: "none",
"animation-delay": "0",
"animation-direction": "normal",
"animation-duration": "0",
"animation-fill-mode": "none",
"animation-iteration-count": "1",
"animation-name": "none",
"animation-play-state": "running",
"animation-timing-function": "ease",
"backface-visibility": "visible",
background: "0",
"background-attachment": "scroll",
"background-clip": "border-box",
"background-color": "transparent",
"background-image": "none",
"background-origin": "padding-box",
"background-position": "0 0",
"background-position-x": "0",
"background-position-y": "0",
"background-repeat": "repeat",
"background-size": "auto auto",
border: "0",
"border-style": "none",
"border-width": "medium",
"border-color": "inherit",
"border-bottom": "0",
"border-bottom-color": "inherit",
"border-bottom-left-radius": "0",
"border-bottom-right-radius": "0",
"border-bottom-style": "none",
"border-bottom-width": "medium",
"border-collapse": "separate",
"border-image": "none",
"border-left": "0",
"border-left-color": "inherit",
"border-left-style": "none",
"border-left-width": "medium",
"border-radius": "0",
"border-right": "0",
"border-right-color": "inherit",
"border-right-style": "none",
"border-right-width": "medium",
"border-spacing": "0",
"border-top": "0",
"border-top-color": "inherit",
"border-top-left-radius": "0",
"border-top-right-radius": "0",
"border-top-style": "none",
"border-top-width": "medium",
bottom: "auto",
"box-shadow": "none",
"box-sizing": "content-box",
"caption-side": "top",
clear: "none",
clip: "auto",
color: "inherit",
columns: "auto",
"column-count": "auto",
"column-fill": "balance",
"column-gap": "normal",
"column-rule": "medium none currentColor",
"column-rule-color": "currentColor",
"column-rule-style": "none",
"column-rule-width": "none",
"column-span": "1",
"column-width": "auto",
content: "normal",
"counter-increment": "none",
"counter-reset": "none",
cursor: "auto",
direction: "ltr",
display: "inline",
"empty-cells": "show",
float: "none",
font: "normal",
"font-family": "inherit",
"font-size": "medium",
"font-style": "normal",
"font-variant": "normal",
"font-weight": "normal",
height: "auto",
hyphens: "none",
left: "auto",
"letter-spacing": "normal",
"line-height": "normal",
"list-style": "none",
"list-style-image": "none",
"list-style-position": "outside",
"list-style-type": "disc",
margin: "0",
"margin-bottom": "0",
"margin-left": "0",
"margin-right": "0",
"margin-top": "0",
"max-height": "none",
"max-width": "none",
"min-height": "0",
"min-width": "0",
opacity: "1",
orphans: "0",
outline: "0",
"outline-color": "invert",
"outline-style": "none",
"outline-width": "medium",
overflow: "visible",
"overflow-x": "visible",
"overflow-y": "visible",
padding: "0",
"padding-bottom": "0",
"padding-left": "0",
"padding-right": "0",
"padding-top": "0",
"page-break-after": "auto",
"page-break-before": "auto",
"page-break-inside": "auto",
perspective: "none",
"perspective-origin": "50% 50%",
position: "static",
right: "auto",
"tab-size": "8",
"table-layout": "auto",
"text-align": "inherit",
"text-align-last": "auto",
"text-decoration": "none",
"text-decoration-color": "inherit",
"text-decoration-line": "none",
"text-decoration-style": "solid",
"text-indent": "0",
"text-shadow": "none",
"text-transform": "none",
top: "auto",
transform: "none",
"transform-style": "flat",
transition: "none",
"transition-delay": "0s",
"transition-duration": "0s",
"transition-property": "none",
"transition-timing-function": "ease",
"unicode-bidi": "normal",
"vertical-align": "baseline",
visibility: "visible",
"white-space": "normal",
widows: "0",
width: "auto",
"word-spacing": "normal",
"z-index": "auto",
all: "initial unset"
});