使用Facebook广告API中的PreviewCSS

使用Facebook广告API中的PreviewCSS,css,facebook-ads-api,Css,Facebook Ads Api,如上所述,您可以获取CSS文件,以便与文档中还描述的广告预览HTML一起使用。问题是css文件在下载时包含如下元素: body{background:#fff;font-size:11px;font-family:'lucida grande',tahoma,verdana,arial,sans-serif;color:#333;line-height:1.28;margin:0;padding:0;text-align:left;direction:ltr;un

如上所述,您可以获取CSS文件,以便与文档中还描述的广告预览HTML一起使用。问题是css文件在下载时包含如下元素:

body{background:#fff;font-size:11px;font-family:'lucida grande',tahoma,verdana,arial,sans-serif;color:#333;line-height:1.28;margin:0;padding:0;text-align:left;direction:ltr;unicode-bidi:embed}
h1, h2, h3, h4, h5, h6{font-size:13px;color:#333;margin:0;padding:0}
h1{font-size:14px}
h4, h5{font-size:11px}
p{margin:1em 0}
a{cursor:pointer;color:#3b5998;text-decoration:none}
a:hover{text-decoration:underline}
img{border:0}
td, td.label{font-size:11px;text-align:left}
dd{color:#000}
dt{color:#777}
ul{list-style-type:none;margin:0;padding:0}
因此,当我们把这个CSS放在网页上时,它会影响页面其余部分的格式化。 也许这是一个简单的CSS问题,但如何限制CSS的应用范围?我必须把它放在框架里还是什么的?看起来很烦人


谢谢

只需指定具有更高css特异性的选择器即可。这是一篇关于如何做到这一点的优秀文章


基本上,由于所有这些选择器都只有一个元素名称(例如,
h1
),因此它们的特异性为1。即使您在自己的所有选择器前面加上
body
,例如
body h1
,您的选择器也会有更高的特异性,因此会优先于Facebook CSS。

解决此问题的更简单方法是通过iFrame或弹出窗口加载用于预览广告的代码,这意味着Facebook的CSS不会干扰你的网站

谢谢-我了解基本概念,但我不明白如何在这个场景中应用它。那么,我是否需要编辑我的每一个CSS标签以获得更大的细节?有没有一种简单的方法可以让一个特定的CSS文件只应用于一个特定的div,或者更简单的东西?@kevin——没有更改CSS就不行。例如,如果您可以修改原始注释中发布的CSS,并向每个选择器预先添加一个id(例如
#advert
),那么您可以让它仅应用于id中的那些元素。但不支持CSS的“范围界定”。然而,从你发布的规范来看,FB已经将广告粘贴在一个带有特定类名的
中,然后针对该类名进行造型…?是的,Facebook的DIV很棒,CSS让我心痛。我只需要提交一个Facebook bug,看看会发生什么。我不确定我们应该如何使用这个CSS。谢谢一个更简单的答案是Facebook不提供包含如下定义的CSS文件;-)