1

当通过 SSL 连接时,特定样式将从样式表中删除。我想不出任何押韵或理由,但它始终是相同的风格。或许值得注意的是,要使用 display:none; 隐藏的元素;可见。列表样式也恢复为默认浏览器设置,并且一些背景图像(不是全部)也被删除。所有 URI 路径都是相对的——既来自页头,也来自样式表本身。

例如,以下工作...

body { background: url(../images/bg-yellowstripes.jpg) repeat 0 0; }

但是,下一行没有...

#masthead { background: url(../images/bg-header.jpg) repeat-x 0 100%; }

任何人都有这方面的经验,可以帮助页面正确显示并避免 IE 混合内容警告?顺便说一句,只影响 Internet Explorer。Firefox、Safari、Chrome 都正常呈现页面,没有任何 SSL 警告。

4

4 回答 4

2

听起来您正在使用绝对路径加载 CSS 文件。例如,如果您有一个将通过 HTTP 和 HTTPS 提供服务的站点,则应该使用相对路径。

绝对:(不要这样做,通过 SSL 查看时 IE 会给出安全警告)

<link rel="stylesheet" href="http://mydomain.com/css/style.css" />

相对的:

<link rel="stylesheet" href="/css/style.css" />

如果样式来自另一个域(例如 CDN),请使用双斜杠而不是指定协议。这将导致路径继承在发出 CSS 请求时请求页面的协议。

<link rel="stylesheet" href="//otherdomain.com/css/style.css" />

另外,使用 IE 开发者工具。他们会准确地告诉您哪些网络资源正在从哪个 SSL 页面加载,而不是哪个 SSL。

于 2013-03-29T19:52:25.003 回答
0

以及相对路径结构,如果它是 IE9 及以下,则客户端中存在内存限制,如果样式表太大,它将停止加载它们。如果您正在缓存一堆文件,我可以看到这种情况

于 2015-01-28T14:59:54.493 回答
0

如果您从另一个 URL(例如:fonts.googleapis.com)加载字体,请检查您的 CSS 中的序言。确保路径还指定:路径中的“HTTPS”。这个简单的更改立即解决了我的 CSS over HTTPS 问题。

旧序言:@import url(' http://fonts.googleapis.com/css?family=Roboto ...等)

更正的序言:@import url(' https://fonts.googleapis.com/css?family=Roboto ...等)

于 2015-09-29T12:46:04.430 回答
-1

尝试在 CSS 背景路径中添加引号,如下所示:

body { background: url('../images/bg-yellowstripes.jpg') repeat 0 0; }

另外,我已经阅读了该background属性需要值的特定顺序(颜色 url Xpos Ypos 重复)。所以它会是这样的:

body { background: url('../images/bg-yellowstripes.jpg') 0 0 repeat; }

除此之外,当我将它们加载到网站http://上时,我的样式也被丢弃了一次。https://但由于您使用的是相对路径,我猜这是另外一回事。

可能是缓存问题。

于 2013-03-29T19:42:22.360 回答