Javascript css设计facebook登录按钮的样式,最佳实践
我正在使用Facebook在我的webapp中进行单点登录(代码如下)。但是我不知道如何用css控制按钮的样式。我看到Facebook插件在我的页面中插入了一个iframeJavascript css设计facebook登录按钮的样式,最佳实践,javascript,css,facebook,iframe,Javascript,Css,Facebook,Iframe,我正在使用Facebook在我的webapp中进行单点登录(代码如下)。但是我不知道如何用css控制按钮的样式。我看到Facebook插件在我的页面中插入了一个iframe <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d
<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/fr_CA/all.js#xfbml=1&appId=myid";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-login-button" data-max-rows="1" data-size="large" data-show-faces="false" data-auto-logout-link="true"></div>
JSfiddle:
您知道如何控制按钮样式吗?正如您在fb docu中看到的那样,
div.fb-login-button
被外部加载的脚本替换为iframe
。要自己设计这个按钮的样式,您只需创建一个按钮,该按钮的样式取决于您的意愿,并自己触发登录机制
欲了解更多信息,请阅读。我发现您可以将(未记录的)colorscheme属性(“浅”或“深”)与登录按钮一起使用,该按钮用于其他Facebook社交插件,如按钮等 这提供了文本颜色的替代方案,并适合我的要求,因为我有黑色背景,默认的“灯光”方案使用黑色文本,这意味着默认设置下FB iframe中没有可见的文本 例如 如果您需要对外观进行更多控制,最好创建自己的按钮,并使用Javascript SDK构建一些自定义内容:
虽然很旧,但下面是我正在使用的示例代码
<!--HTML-->
<button id="customBtn" (click)='checkLoginState();'>
<span class="icon"></span>
<span class="buttonText">Facebook</span>
</button>
<div id='fb-status-login'></div>
为代码创建工作提琴,这样我们就可以检查您的问题并提供解决方案。谢谢。对不起,我添加了jsfiddle谢谢,我从你的链接中获取了快速启动代码,但是他们使用的按钮
Facebook
仍然是FB“登录按钮”。你能为一个与api一起工作的可定制按钮提供一个replacenet代码吗。。。i、 e.登录Facebook
不会触发登录您的意思是单击
,而不是(单击)
作为HTML属性名,不是吗?正如我提到的,我使用的是angular,所以(单击)是有效的语法。但是您可以对普通html使用onclick。
<!--HTML-->
<button id="customBtn" (click)='checkLoginState();'>
<span class="icon"></span>
<span class="buttonText">Facebook</span>
</button>
<div id='fb-status-login'></div>
//CSS
#customBtn {
display: inline-block;
background: white;
color: #444;
width: 190px;
border-radius: 5px;
border: thin solid #888;
box-shadow: 1px 1px 1px grey;
white-space: nowrap;
}
#customBtn:hover {
cursor: pointer;
}
span.label {
font-family: serif;
font-weight: normal;
}
span.icon {
background: url('/assets/images/f-normal.png') transparent 5px 50% no-repeat;
display: inline-block;
vertical-align: middle;
width: 42px;
height: 42px;
}
span.buttonText {
display: inline-block;
vertical-align: middle;
padding-left: 42px;
padding-right: 42px;
font-size: 14px;
font-weight: bold;
/* Use the Roboto font that is loaded in the <head> */
font-family: 'Roboto', sans-serif;
}
public checkLoginState() {
console.log('checking login status');
FB.getLoginStatus((response)=> {
this.statusChangeCallback(response);
});
}
public statusChangeCallback(response) {
console.log('statusChangeCallback');
console.log(response);
if (response.status === 'connected') {
console.log('status was already connected. will test api.');
this.testAPI();
} else if(response.status ==='not_authorized'){
console.log('status was not authorised. will call login');
FB.login((response)=> {
if (response.status === 'connected') {
console.log('status is now connected. will test api.');
this.testAPI();
} else {
console.log('fatal.');
document.getElementById('fb-status-login').innerHTML = 'some serious shit happened';
}
});
} else{
document.getElementById('fb-status-login').innerHTML = 'Please log ' +
'into this app.';
}
}
public testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
document.getElementById('fb-status-login').innerHTML =
'Thanks for logging in, ' + response.name + '!';
});
}