- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<强>!!!如果现在有人能回答这个问题,我会等赏金期结束,涨到150再奖励。 (童子军的荣誉!)!!!
我环顾四周,但找不到这个问题的答案:
我正在从 fb api 获取事件封面图像,并且还存储 offset_x 和 offset_y 值。然后我将图像放置为 css 背景图像,如下所示:
CSS
.event-image {
margin-bottom: 30px;
width: auto;
width: 500px;
height: 178px;
max-width: 100%;
min-width: 300px;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
outline: none;
}
高度/宽度基于 facebook 使用的确切比例:2,8:1
HTML
<div class="event-image" style="background-image: url([url of img]); background-position: [offset_x]% [offset_y]%;" >
(我确实有一些内部逻辑,如果 fb api 中有一个设置,则只添加 background-position 属性。)
问题是这只在 90% 的时间内有效。大约 10% 的图像略微未对齐。通常只有几个百分点:-(
这是一个例子。
.event-image {
margin-bottom: 30px;
width: auto;
width: 500px;
height: 178px;
max-width: 100%;
min-width: 300px;
background-size: cover;
background-position: center center;
background-repeat: no-repeat;
outline: none;
}
<div class="event-image" style="background-image: url(https://scontent.xx.fbcdn.net/t31.0-0/p180x540/14566476_1295215523823549_1334771895810946224_o.jpg); background-position: 0% 50%; "> </div>
<!-- Offsets are taken directly from API -->
现在是 actual event
您可以看到实际上偏移量在 46% 时是完美的 - 那么为什么 fb 给出 50%?
我能找到的最多信息是在 pixel calculations 上,但考虑到我使用的是百分比,这没有用。
编辑
实现 elfan 解决方案的新问题:
fb 上的 Here is an event ,其中图像在实际 fb 页面中具有 -7px 的 offset_x - 但根据 api,offset_x = 50%
{
"cover": {
"offset_x": 50,
"offset_y": 0,
"source": "https://scontent.xx.fbcdn.net/t31.0-8/s720x720/14681104_1307094859330152_7540791723420117074_o.jpg",
"id": "1307094859330152"
},
"id": "544220282434185"
}
因此,使用计算 500px(我的图像的宽度)* offset_x % = 250px
我做错了什么:-)
我还注意到有些事件具有疯狂的偏移量,例如 1800。根据 fb 文档,它应该在 0-100 之间。
最佳答案
解释有问题
fb api 中的值 50
显然是指在 top
中使用它时的百分比偏移量,这意味着包含 block 高度 ( spec here ) 的百分比。这与在 background-position
( spec here ) 中使用时不同。还有 an article here 直观地显示了差异。
如果要使用background-position
,解决方法是使用px
。或者,您可以使用 top
,作为 %
或 px
。
我已经制作了以下代码来比较您的代码、fb 代码以及修复应该是什么(对于所有替代方案):
/* Your original code */
.event-image {
width: 500px;
height: 178px;
background-size: cover;
background-image: url("https://scontent-sit4-1.xx.fbcdn.net/t31.0-0/p600x600/14566476_1295215523823549_1334771895810946224_o.jpg");
background-position: 0 50%; /* "50" is from fb api, but not used correctly */
}
/* FB actual code */
.cover {
width: 826px;
height: 294px;
position: relative;
overflow: hidden;
}
.cover img {
position: absolute;
width: 100%;
left: 0;
top: -147px; /* 294px * 50% = 147px, this is the correct usage of "50" from fb api */
}
/* Your code if showing as big as FB image */
.bigger-image {
width: 826px;
height: 294px;
background-size: cover;
background-image: url("https://scontent-sit4-1.xx.fbcdn.net/t31.0-0/p600x600/14566476_1295215523823549_1334771895810946224_o.jpg");
background-position: 0 50%; /* "50" is from fb api, but not used correctly */
}
/* The correct code using "background-position" */
.correct-image {
width: 500px;
height: 178px;
background-size: cover;
background-image: url("https://scontent-sit4-1.xx.fbcdn.net/t31.0-0/p600x600/14566476_1295215523823549_1334771895810946224_o.jpg");
background-position: 0 -89px; /* 178px * 50% = 89px, this is the correct usage of "50" from fb api */
}
/* The correct code using "top" in pct */
.correct-cover {
width: 500px;
height: 178px;
position: relative;
overflow: hidden;
}
.correct-cover img.pct {
position: absolute;
width: 100%;
left: 0;
top: -50%; /* the correct usage of "50" from fb api */
}
/* The correct code using "top" in px */
.correct-cover img.px {
position: absolute;
width: 100%;
left: 0;
top: -89px; /* 178px * 50% = 89px, this is the correct usage of "50" from fb api */
}
<h3>Your original code</h3>
<div class="event-image"></div>
<br />
<h3>FB actual code</h3>
<div class="cover">
<img src="https://scontent-sit4-1.xx.fbcdn.net/t31.0-0/p600x600/14566476_1295215523823549_1334771895810946224_o.jpg" />
</div>
<br />
<h3>Your code if showing as big as FB image</h3>
<div class="bigger-image"></div>
<br />
<h3>The correct code using "background-position"</h3>
<div class="correct-image"></div>
<br />
<h3>The correct code using "top" in pct</h3>
<div class="correct-cover">
<img class="pct" src="https://scontent-sit4-1.xx.fbcdn.net/t31.0-0/p600x600/14566476_1295215523823549_1334771895810946224_o.jpg" />
</div>
<br />
<h3>The correct code using "top" in px</h3>
<div class="correct-cover">
<img class="px" src="https://scontent-sit4-1.xx.fbcdn.net/t31.0-0/p600x600/14566476_1295215523823549_1334771895810946224_o.jpg" />
</div>
<br />
关于为什么 46% 在您的原始代码中看起来正确的补充说明:
background-position: 0%
与 top: 0px
相同
background-position: 100%
等同于 top: -197px
background-position: 50%
与 top: -98.5px
(197 x 50%) 相同
background-position: 46%
与 top: -90.62px
(197 x 46%) 相同,而正确的是 top: - 89px
,所以看起来足够接近了。
197
来自哪里?框大小为 500 x 178 像素。实际图像大小为 800 x 600 像素。由于 background-size: cover
导致的渲染/缩放图像大小为 500 x 375 像素。图片高度比框高大 375-178 = 197px。请记住,当使用 background-position: 100%
时,图像的底部边缘将与框的底部边缘相交,这意味着 top: -197px
。
关于Facebook API 覆盖背景位置属性中的图像偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40505376/
我为我们的业务创建了一个 Facebook 页面,我创建了一个 Facebook 应用程序来获取 AppID,以便在 Facebook 插件中使用它。 我注意到 Facebook 应用程序的页面看起来
是否有可能知道哪个 Facebook 用户点击了我的应用用户在 Facebook 上分享的链接? 为了清楚起见,让我改写一下:我想知道我的应用用户的哪些 friend 点击了他的共享链接。 感谢任何提
我正在浏览 facebook pixel,对 facebook pixel 如何知道哪个转化来自哪个 facebook 广告感到很困惑? 假设我有这个 url http://example.com安装
我正在开发 sucsongmoi.net(越南语),当浏览者从他们的墙上分享网站链接时,一些链接 facebook 获得描述和图像,一些链接 facebook 无法获得描述和图像。 例如:分享 suc
一位同事错误地设置了个人 Facebook 页面;它应该是一个企业 Facebook 页面。 个人页面上有几个 friend 需要重定向到正确的 Facebook 业务页面。 我可以将用户从错误的个人
在 Facebook 上,当您转到“编辑我的个人资料”>“艺术和娱乐”时,会有一个“电影”自动完成小部件,它会在您输入电影时推荐电影。 因此,如果您输入“Jones”,它将开始建议: 印第安纳琼斯 布
我在我的网页上使用 Facebook 登录。首次登录时,Facebook 登录应用程序会请求获取用户数据的权限。 有什么方法可以改善这个问题,以请求喜欢我的 Facebook 页面的许可?用户点击后,
我需要知道是否可以将现有的 Facebook 页面(类别:应用程序页面)链接到 Facebook 应用程序?当我进入 Facebook 应用程序设置时,他们建议创建一个新页面。但我需要的只是链接到现有
我的网站应用程序具有通过 Facebook 登录进行登录的功能。为此,我的应用程序出现在 Facebook 上。使用 Facebook 登录工作正常。 但应用程序具有将 Facebook 帐户链接和取
我正在制作一个应用程序,让人们可以在 Facebook 上与特定的 friend 分享内容。示例:Alice 使用我的应用程序,她与 Bob 分享了一篇文章,Bob 是她的 Facebook 好友。现
我正在按照列出的说明进行操作 http://docs.appcelerator.com/platform/latest/#!/api/Modules.Facebook 并查看 Arrow 示例目录中的
假设我有一个餐厅的商业网站,一位顾客为一大群人预订了一张 table 。有没有一种方法可以让客户有机会在餐厅网站上创建 Facebook 事件,作为预订流程的一部分。我知道客户必须以某种方式从餐厅网站
我想让我的用户将他们的用户帐户与 Facebook 或 Twitter 相关联,并允许他们使用他们的 Facebook/Twitter 帐户登录我的服务器,而不是使用传统的用户名/密码。与StackO
我们有一个面子书页面。我们添加了一个自定义 FBML 选项卡。现在我们要添加评论面子书插件。我尝试添加一个脚本,我从 Face book Social Plug in .代码是 之后我将此脚本放入自
大家好 请帮我找到关于以下的官方信息: 1) 什么是“FaceBook 登录” 2) 什么是“FaceBook Connect” 谢谢 最佳答案 你可以在那里找到你需要的一切: http://deve
这是最奇怪的事情。我有非常简单的 CF 代码,查看 cgi.HTTP_REFERER。简单地说,它查看推荐人。如果链接是从我们的主要网站域之外单击的,它会显示一些内容。否则,什么也不会发生。所以,如果
我还是 Facebook Graph API 的新手,正在尝试开始使用 Facebook 地点搜索。 (按位置搜索地点) https://graph.facebook.com/search?type=
我不想开设 Facebook 帐户,但我被要求为需要使用 Facebook API 的应用程序开发功能。有没有一种方法可以开发这些功能并使用 Facebook API,而无需开设个人 Facebook
我已经按照指示实现了 DotNetOpenAuth 提供的示例应用程序 here . 正如您在下面看到的,这要求用户安装此 facebook 应用程序。 我只是想让用户使用他们的 Facebook 登
我的主页上有标准的 Facebook 登录按钮,我不希望人们仅在用户单击登录按钮时使用他们的 Facebook 帐户自动登录我的网站。 如果用户未登录 Facebook,将出现一个弹出窗口询问他的凭据
我是一名优秀的程序员,十分优秀!