- 博客(162)
- 收藏
- 关注
原创 CSS手动布局
让元素浮动到上级元素盒子的左侧或右侧。浮动元素会被移出文档流,然后向左(右)平移,直到触碰盒子边界,或另一个浮动元素。其他内容环绕浮动元素排列,填充浮动元素右(左)侧和下方的空间。/* 相对(正常布局)位置。/* 视口固定位置。CSS支持单独设置某个元素的布局,最主要的属性是。也可以改变元素的位置。代码1 手动布局属性。
2025-05-07 20:45:57
202
原创 CSS分栏布局
浏览器使用这个值计算栏的数量,如果还有额外的空间,浏览器会增加栏的实际宽度。分栏布局将区域划分为若干垂直的栏,子元素放置到栏中,填满一个后再填充下一个。/* 内容优先填充靠左侧的栏。/* 内容平均分配到每个栏中。如果希望分栏容器中的某个子元素跨越所有的栏,可以将子元素的。属性,将内容优先填满靠左侧的栏,或者平均分配到每个栏中。代码3 column-rule-*
2025-05-06 23:01:16
427
原创 CSS网格布局
minmax(min-content, 100px) /* min-content是不换行、不溢出时网格项需要的最小空间。minmax(100px, max-content) /* max-content是不换行、不截断时网格项自然占据的空间。minmax(auto, ...) /* 等价于 minmax(min-content, ...) */代码4 网格项的grid-column-start/grid-column-end属性可以调整放置位置或横跨多列。/* 网格项横跨3个行轨道。
2025-05-06 22:21:35
402
原创 正常流布局
元素分为块元素和行内元素两类。块元素独占一行,行内元素则是在行中,在前面元素的右边排列。如果一行排满了,行内元素继续从第二行开始排列。布局决定了元素的排列方式。正常布局是怎么排列元素的呢?各行从上到下,行内从左到右。,是一种特殊的行内元素,它像其他行内元素一样,在行内排列,同时像块元素一样可以设置高度、宽度和边距。如果希望为行内元素设置高度、宽度或垂直内外边距要怎么做呢?可以使用行内块元素。的元素,不产生换行,高度和宽度由元素内容决定,不能设置垂直方向的内边距和外边距。的元素,独占一行,可以设置高度。
2025-04-28 18:09:55
335
原创 弹性盒子布局
新的一行(列)默认排列在原行(列)的下方(右侧),这个方向叫做交叉轴方向。如果希望元素在水平或垂直方向依次排列,并且能够根据容器尺寸自动调整元素位置和大小,可以使用弹性盒子布局。,它就成为flex容器,它的下级元素成为flex元素。主轴方向由flex容器的。“排不下”有五种处理方法:一是收缩元素适配主轴长度,二是换行,三是溢出,四是截断,五是使用滚动轴。讲完了主轴上元素的排列方式,现在介绍元素在交叉轴方向的对齐方式,它由flex容器的。如果某个flex元素希望拥有独立的对齐方式,可以使用flex元素的。
2025-04-28 18:09:19
683
原创 CSS基础
CSS是Cascading Style Sheets的缩写,翻译为层叠样式表。CSS是一种样式表语言,用来描述HTML文档的表现方式,如字体、色彩、背景色等等。我们先从一段简单的CSS代码开始。代码1 CSS示例p {color: red;这段代码的效果是将HTML文档中全部<p>元素里的文本设置成红色。大括号里面的是CSS规则,格式为属性: 属性值;每条规则占一行,以半角分号结尾。属性和值之间以半角冒号分割,属性和值的前后可以添加空格。color表示文字色彩属性,red。
2025-04-24 21:16:50
1002
原创 AIP代码生成器——标准化接口开发智能工具
AIP代码生成器遵循Google API Improvement Proposal(AIP)设计准则,为RESTful API开发提供标准化方法和批量方法模板,快速生成符合AIP的代码框架。支持多种语言和框架。
2025-04-24 10:57:25
891
原创 Vue3笔记
/script></script><template>模型实际上是双向的ref。每个v-model只包含一个简单的状态,并非整个组件整体状态的聚合。组件的整体状态由多个v-model组成。
2025-04-18 20:49:18
308
1
原创 AIP目录
AIP是总结了谷歌API设计决策的设计文档,它也为其他人提供了用文档记录API设计规则和实践的框架和系统。专注于开发灵活API的设计文档。
2025-04-18 19:13:38
292
原创 AIP-236 策略预览
策略是一种资源,它提供规则,许可或拒绝对其他资源的访问。通常,策略的结果可以计算为特定的结果集合。未经充分验证就变更策略,可能会产生意外后果,严重影响客户的整体基础设施配置。为了安全的更新资源,利用策略推出API测试这些变更,是有好处的。预览是策略资源的安全推出机制,让客户能够在变更生效之前,验证所提交的变更对生产流量的影响。针对流量的策略评估结果会记录下来,为客户提供数据,测试变更是否正确。防火墙策略是适合预览的典型场景。使用流量评估新配置,观察哪些IP会被放行或拦截。
2025-04-18 19:12:22
1027
原创 AIP-217 不可达资源
有时,用户可能会请求一系列资源,而其中某些资源暂时不可用。最典型的场景是。例如用户可能请求返回多个上级位置的资源,但其中某个位置暂时不可达。此时仍然需要向用户提供所有可用资源,同时告诉客户有部分缺失。
2025-04-11 23:46:11
908
原创 AIP-216 状态
许多API资源都带有“状态”概念:通常指资源在其生命周期中的位置。例如,虚拟机可能处于配置中、可用、关闭中,或者其他几种可能的情况之一。作业或查询可能处于准备运行、运行中、已完成等。
2025-04-07 20:20:40
587
原创 AIP-215 API特定proto
API通常使用API特定proto定义,偶尔依赖通用组件。保持API相互隔离可以避免版本问题和客户端库打包问题。
2025-04-06 22:24:55
337
原创 AIP-214 资源过期
客户经常希望设置某个资源或资源属性不再可用或生效的时间(例如轮转安全密钥)。目前,我们建议客户设定一个具体的“过期时间”,保存在域。然而,如果客户希望设定相对时间偏移量,而非具体的过期时间时,这会增加额外负担。此外,现实中存在“生存时间”(通常缩写为TTL)概念,在使用自动生成的客户端库时,这个域的典型格式(以秒为单位的整数)可能导致较差的用户体验。
2025-04-06 20:58:36
261
原创 AIP-213 通用组件
根据规定,除使用“通用组件”包之外,API必须是独立的。通用组件包是给多个API使用的。如果可以安全在多个API之间共享同一个消息,通用组件可以让客户端更容易API交互。例如关于特定概念的客户端代码只需要编写一次,一个API的应答中的消息可以直接用于另一个API的请求,无需低效的复制。当让这种优势也存在重要的限制和局限性,不应轻易尝试。请注意,即使组件所属领域是通用的,组件也可能是组织特定的。
2025-04-04 13:56:49
582
原创 AIP-211 授权检查
大多数操作,无论读或写,都需要授权:获得执行用户请求的操作的权限。此外,向未授权用户提供了多少信息也非常重要,因为信息泄露也是安全问题。
2025-04-02 22:08:37
270
原创 AIP-210 Unicode
省流在我们的API中,“字符”指的是“Unicode码点”。在API文档(例如API参考文档、博客文章、营销文档、计费说明等)中,“字符”必须定义为Unicode码点。
2025-04-01 21:22:45
1009
原创 AIP-203 域行为文档
在定义protocol buffer中的域时,按惯例要向用户解释域行为的某些方面(例如域是必需的还是可选的)。此外,让其他工具理解域行为也很有用(例如优化客户端库签名)。
2025-03-31 21:12:35
655
原创 AIP-194 自动重发配置
远程过程调用可能失败。此时,调用远程过程的客户端需要知道能否安全的重新执行操作。如果多个API使用统一的错误码,客户端可以妥善处理失败。
2025-03-30 11:37:28
263
原创 AIP-193 错误
有效的错误沟通是设计简单直观API的重要组成部分。返回标准错误应答的服务,让API客户端可以构建集中式通用错误处理逻辑。通用逻辑简化了API客户端应用程序,消除了繁琐的零散错误处理代码的需求。
2025-03-30 01:20:31
722
原创 AIP-192 文档
文档是API设计中最关键的方面之一。API用户无法深入到实现细节去更好地理解API。通常,API界面定义和相关文档是用户仅有的东西。因此文档必须尽量清晰、完整、明确。
2025-03-27 19:17:25
565
原创 AIP-180 向后兼容
API本质上是同用户的契约,用户经常按照API编写代码,部署到生产服务,期望代码正常工作(除非API另有要求)。因此,了解什么样的变更是向后兼容的,什么样是不向后兼容的,非常重要。
2025-03-24 20:17:37
1015
原创 AIP-182 外部软件依赖
某些服务对外部软件有特定类型的依赖:它们允许用户创建的资源,以某种方式运行于或发布了外部软件。以这种方式向用户提供外部软件的服务,最终需要解决这样一个事实:所有这些类型的软件都有发布生命周期,它们当前发布的版本最终都会到达生命周期终点。
2025-03-18 22:37:49
358
原创 AIP-181 稳定级别
虽然不同组织(谷歌或其他组织)拥有不同的产品生命周期,AIP使用以下术语指代API组件稳定性。这些稳定级别大致对应于Google Cloud中的产品发布阶段(alpha、beta、GA),但并不完全相同。谷歌云计算平台在此基础上存在额外的期望和承诺。
2025-03-17 20:44:14
274
原创 AIP-165 按条件删除
有时API需要提供一种机制,按照一些过滤参数删除大量资源,而非提供待删除的各资源名字。这是一个稀有的场景,用于用户一次性删除数千或更多资源的情况。此时,普通的批量删除模式()笨重低效。
2025-03-13 21:26:35
731
原创 AIP-164 软删除
客户端需要使用软删除和恢复删除功能的原因有很多,一个非常突出的重要原因是:从错误中恢复。支持恢复删除的服务,让用户能够恢复意外删除的资源。
2025-03-12 21:02:59
991
原创 AIP-163 变更验证
有时,用户希望在实际进行更改之前验证预期的更改,以查看结果会是什么。例如,请求在服务器群中配置新服务器将对整个服务器群的规模和成本产生影响,并可能产生意想不到的下游影响。
2025-03-11 19:20:18
315
原创 AIP-162 资源修订
一些API需要保留资源修订历史,用户可以推断资源在历史上的状态。我们使用“修订”(revision)指代特定资源的历史参考,并有意避免使用“版本”(version)一词,后者指的是API整体的版本。
2025-03-10 00:05:43
909
原创 AIP-161 域掩码
在(使用的Update或类似方法)更新资源时,通常需要明确指定哪些域需要更新。服务可以忽略另外的域,即使用户发送了值。定义一种掩码格式,为每个API处理更具体需求的方案虽然吸引人。但考虑到掩码需求不断变化,明智的做法是使用一种结构化语法,可以透明地进行更新,无需等待界面或客户端升级。
2025-03-08 23:52:21
928
原创 AIP-160 过滤
通常在列出资源(使用中定义的List方法或类似方法)时,需要能够过滤集合,只返回用户需要的结果。虽然可以定义独立的结构为每个API处理更精确的过滤需求,但是过滤需求经常变化,明智的做法是使用一个字符串字段,采用非技术人员也能理解的结构化语法。这样可以透明地进行更新,无需等待界面或客户端升级。应为列表过滤器面对的是非技术人员,所以通常会借鉴口语形式,而非代码常用的模式。
2025-03-06 22:05:20
967
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人