【css】Google第三方登录按钮样式修改

文章目录

场景

需要用到谷歌的第三方登录,登录按钮有自己的样式。根据官方文档:概览 | Authentication | Google for Developers,提供两种第三方登录的API:HTML版和JS版。它们都使用的是封装好的按钮。也就是说,目前不能自己放置一个图片,点击它跳转第三方登录,而是只能在原有官方按钮的基础上对它的样式进行修改

ps:访问谷歌文档需要科学上网。

前置准备

根据文档,引入客户端库:

如果不想总是访问谷歌的库,可以进入此链接,把对应的代码复制到本地,本地引入库或上传到CDN引入

html 复制代码
<script src="https://accounts.google.com/gsi/client" async></script>

根据文档的生成 HTML 代码 | Authentication | Google for Developers自动生成谷歌第三方登录的代码(这里的data-client_id随便在sandbox上搜的):

html 复制代码
<div id="g_id_onload"
     data-client_id="414565162824-iolb7mcqbt5j4v86evnnenajdim87vhc.apps.googleusercontent.com"
     data-context="signin"
     data-ux_mode="popup"
     data-login_uri="http://localhost:3003"
     data-auto_prompt="false">
</div>

<div class="g_id_signin"
     data-type="standard"
     data-shape="rectangular"
     data-theme="outline"
     data-text="signin_with"
     data-size="large"
     data-logo_alignment="left">
</div>

看看效果:

修改样式

是很好的CSS选择器优先级练习

假设我们的目标是这样:

那么我们需要修改它的宽高、border-radius、logo和文字的位置或布局等。

官方属性修改样式

"使用 Google 帐号登录"HTML API 参考文档 | Authentication | Google for Developers

googleBtn是自己加的类,用来改css。

html 复制代码
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
	</head>

	<style></style>
	<body>
		<script
			src="https://accounts.google.com/gsi/client?hl=en"
			async
		></script>

		<div
			id="g_id_onload"
			data-client_id="414565162824-iolb7mcqbt5j4v86evnnenajdim87vhc.apps.googleusercontent.com"
			data-context="signin"
			data-ux_mode="popup"
			data-login_uri="http://localhost:3003"
			data-auto_prompt="false"
		></div>

		<div
			class="g_id_signin googleBtn"
			data-type="standard"
			data-shape="pill"
			data-theme="outline"
			data-text="signin_with"
			data-size="large"
			data-logo_alignment="left"
			data-locale="en_GB"
		></div>
	</body>
</html>

CSS修改样式

接下来是CSS修改样式。

按钮代码如下:

按钮的高度height和border-radius

对应位置:

css 复制代码
.googleBtn > div > div > div[role="button"] {
	height: 48px;
	border-radius: 99px;
}

注意要加属性选择器,不然可能选择器优先级不够。

Logo和文字布局

logo:

css 复制代码
.googleBtn > div > div > div[role="button"] > div > div{
	/*可以修改logo的width、height、margin等*/
}

文字:

这里是第一个span:

css 复制代码
.googleBtn > div > div > div[role="button"] > div:nth-child(2) > span {

}

它们的布局:

这里是flex布局,设置了justify-content: space-between;。如果想改:

css 复制代码
.googleBtn > div > div > div[role="button"] > div:nth-child(2) {
	
}
相关推荐
GIS阵地1 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
刘较瘦_2 小时前
AI 开发中的 Git Submodule 父子仓库模式:前后端分仓管理与协作实践
前端·github
牧艺2 小时前
cos-design WeatherBackground:用 Canvas 做一个「会变天」的背景引擎
前端·canvas·视觉设计
OpenTiny社区2 小时前
深度解析 LSP 如何为 AI 装上“眼睛”
前端·ai编程
布列瑟农的星空2 小时前
流程类SVG画布的通用开发范式
前端
fsssb2 小时前
Chromium 源码学习笔记(七):那些跨进程的调用,底下都是同一个东西——Mojo
前端
MichaelJohn3 小时前
从零星白屏到“启发式缓存”,记录一次刚接手屎山的惊险排查
前端
程序员黑豆3 小时前
鸿蒙应用开发:6种图片加载方式详解
前端·华为·harmonyos
半个落月3 小时前
用 React 搭一个 WebGPU 模型加载页:从状态驱动到可复用进度条
前端·react.js
雪隐3 小时前
个人电脑玩AI-13让5060 Ti给你打工——我用 0.9B 小模型终结了"谁来记会议纪要"这个世纪难题
前端·人工智能·后端