One of the concerns is that iOS will stop supporting iFrames, and honestly we've all been told for years not to use iFrames. While it seems like the perfect and only solution it really does sound "hacky".

Does anyone have any insight into any other solutions? I looked at how linkedIn embeds their "connect with linkedIn button" and they are simply wrapping every property value with an !important (which a) seem super hacky and b) doesn't account for undeclared properties and values).

Have you tried placing your stylesheet link after the point that their content and script is rendered. If the user styles are placed before yours and you use !Important, your styles should override theirs
–
TannerApr 4 '13 at 22:19

The problem is they can include styles after my content has been loaded, so they always have the last laugh.
–
Dave CollierApr 5 '13 at 13:13

1 Answer
1

Your main concern with !important is that they can still override it with a later declaration using the !important keyword.

You are right about iFrames.

So you are not left with a lot of options:

one option is to prepend your own CSS declarations with a custom non-generic package-like name so that the chances the user will override them will be very slim:

.content h1

will become

.my-custom-css .content h1

the other option is to modify their css markdown instead of yours. Prepend each of their declarations with a specific css class and use that class for their div container so it applies to all of its contents.