You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除iframe中Sign In With Google Button的内边距?

解决@react-oauth/google谷歌登录按钮iframe内边距问题

因为谷歌登录按钮的iframe属于谷歌域名,受同源策略限制,你没法直接修改iframe内部的DOM样式,下面给两个可行的解决思路:

1. 自定义按钮(推荐)

直接放弃默认的iframe按钮,用库提供的useGoogleLogin钩子自己实现按钮,完全掌控样式:

import { GoogleOAuthProvider, useGoogleLogin } from '@react-oauth/google';

function CustomGoogleSignIn() {
  const login = useGoogleLogin({
    onSuccess: (tokenRes) => console.log('登录成功', tokenRes),
    onError: () => console.log('登录失败'),
  });

  return (
    <button onClick={login} style={{ border: 'none', background: 'transparent', padding: 0, cursor: 'pointer' }}>
      {/* 这里是你自定义的按钮内容,完全控制内边距 */}
      <div style={{ 
        display: 'flex', 
        alignItems: 'center', 
        padding: '6px 14px', // 这里可以随意调整内边距,去掉绿色区域的多余padding
        border: '1px solid #e0e0e0', 
        borderRadius: '4px',
        backgroundColor: '#fff'
      }}>
        <img 
          src="https://accounts.google.com/favicon.ico" 
          alt="Google图标" 
          style={{ width: '20px', height: '20px', marginRight: '10px' }} 
        />
        <span>使用Google登录</span>
      </div>
    </button>
  );
}

// 全局包裹Provider
function App() {
  return (
    <GoogleOAuthProvider clientId="你的Google客户端ID">
      <CustomGoogleSignIn />
    </GoogleOAuthProvider>
  );
}

这种方式完全避开了iframe的限制,你想怎么调内边距、样式都可以,绿色区域的padding直接在自定义div里设置就行。

2. 尝试库的内置参数(不保证有效)

如果你非要用默认的iframe按钮,可以试试给GoogleLogin组件传递style或className参数,看是否能影响外层容器的样式,间接抵消内部的padding:

import { GoogleOAuthProvider, GoogleLogin } from '@react-oauth/google';

function App() {
  return (
    <GoogleOAuthProvider clientId="你的客户端ID">
      <GoogleLogin
        onSuccess={(res) => console.log(res)}
        onError={() => console.log('登录失败')}
        style={{ padding: '-8px' }} // 尝试用负padding抵消内部的padding
        className="custom-google-btn" // 也可以写CSS类,用负margin之类的
      />
    </GoogleOAuthProvider>
  );
}

不过因为iframe的同源限制,这种方法大概率无效,还是自定义按钮的方案更可靠。

内容的提问来源于stack exchange,提问作者Kakamotobi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:35:23