跳到内容
新发行

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

图像块:实现纵横比控制 #51138

关闭
8项任务
里奇塔博已打开此问题2023年5月31日·23条评论 ·由修复#51545
关闭
8项任务

图像块:实现纵横比控制 #51138

里奇塔博已打开此问题2023年5月31日·23条评论 ·由修复#51545
受让人
标签
[块]图像 影响图像块 [类型]增强功能 改进的建议。

评论

@里奇塔博
复制链接
成员

里奇塔博 评论2023年5月31日

基于中的设计探索#38990,让我们为核心/图像块。

视觉

CleanShot 2023-05-31,15 58 05

Figma原型

目标

如果我将纵横比应用于具有设置高度和宽度的图像块,我应该能够放入另一个图像,并且纵横比、高度和宽度值都保持不变。

任务

  • 将“分辨率”下方的“纵横比”SelectControl添加到核心/图像块。
  • 将纵横比控件的默认值设置为“原始”。
  • 更新编辑/保存。
  • 如果块具有纵横比和固有高度/宽度,则将两个输入都设置为“自动”
  • 如果块具有纵横比值,则渲染“包含/覆盖切换组”。
  • 如果一个输入被更改,则计算另一个输入(直观地保持“自动”)。
  • 如果两个输入都发生了更改,请将纵横比选择设置为“自定义”,并使用非固有的高度/宽度值作为纵横比css。

后续行动

  • 添加对无介质图像块(占位符)的高度、宽度和纵横比控件的支持。
@里奇塔博 里奇塔博补充需要开发人员 准备好了,需要开发人员的努力 [块]图像 影响图像块 [类型]增强功能 改进的建议。标签2023年5月31日
@阿杰伦德
复制链接
贡献者

为了使用我们在Featured Image块中使用的相同下拉菜单,我认为从一开始就必须选择“Custom”。

如果可以的话,我可能可以在选中时自动填充宽度/高度控件。例如,如果选择平方比且宽度为100,则选择自定义将把高度设置为100。如果两者都是自动的,则可以使用内部宽度和高度的值。

@里奇塔博你觉得这样合理吗?

@阿杰伦德
复制链接
贡献者

阿杰伦德 评论2023年5月31日

我认为从一开始就必须选择“定制”。

我看到这样做的一个问题是,我希望能够设置自定义纵横比,并让图像填充宽宽度或其他内容。不幸的是,这是不可能的,因为宽度和高度都有单位。

同样,如果我希望图像的宽度为50%,长宽比为16:10(自定义),那是不可能的。

@阿杰伦德
复制链接
贡献者

我会说“经典”让我想到3:2而不是4:3。不知道为什么我们选择4:3作为裁剪工具,但既然我们已经偏离了这个标准,也许我们可以在这里使用3:2?

@里奇塔博
复制链接
成员 作者

为了使用我们在特色图片块中使用的相同下拉菜单,我认为“自定义”必须从一开始就是一个选项。

在主干中,如果没有设置纵横比,则Post Featured Image块使用“Original”:

CleanShot 2023-05-31,12 43 35

如果可以的话,我可能可以在选中时自动填充宽度/高度控件。例如,如果选择平方比且宽度为100,则选择自定义将把高度设置为100。如果两者都是自动的,则可以使用内部宽度和高度的值。

我没有跟上。用户不会选择“自定义”-如果高度和宽度输入字段都被修改,则将应用“自定义”。

@里奇塔博
复制链接
成员 作者

同样,如果我希望图像的宽度为50%,长宽比为16:10(自定义),那是不可能的。

我认为那很好。另一种方法是在行/列中设置图像,并将其用作边界元素(这是大多数人对包含图像的布局/模式所做的)。

@阿杰伦德
复制链接
贡献者

我认为那很好。另一种方法是在行/列中设置图像,并将其用作边界元素(这是大多数人对包含图像的布局/模式所做的)。

这是否意味着如果选择了纵横比,宽度/高度的含义会改变?

即,当纵横比为“原始”时,宽度和高度设置,宽度高度在CSS中设置。当纵横比为其他值时,纵横比设置为宽度/高度宽度未设置。

@阿杰伦德
复制链接
贡献者

阿杰伦德 评论2023年5月31日

我没有跟上。用户不会选择“自定义”-如果修改了高度和宽度输入字段,则会为您应用“自定义”。

即使在设置宽度和高度时自动选中,“自定义”也必须是列表的一部分。

纵横比选项

要清楚的是,“原创”仍然需要作为一个选项存在——它与“定制”有不同的含义。

@阿杰伦德
复制链接
贡献者

如果同时设置了宽度和高度,纵横比选择是否被禁用?

如果是这样,您认为删除其中一个宽度或高度是使其不被禁用的方法吗?

或者,如果没有,当选择其他纵横比之一时会发生什么?

@里奇塔博
复制链接
成员 作者

要清楚的是,“原创”仍然需要作为一个选项存在——它与“定制”有不同的含义。

是的,“自定义”使用高度/宽度属性来定义纵横比。

“custom”必须是列表的一部分。

说得好。我几乎想把它贴上“自由形式”的标签。

如果同时设置了宽度和高度,纵横比选择是否被禁用?

否,如果设置了高度和宽度,则纵横比应为“自定义”,并且高度/宽度用作纵横比CSS。这样我可以放入一个新图像并保持纵横比#38990(评论).

或者,如果没有,当选择其他纵横比之一时会发生什么?

如果我从自定义/自由形式的纵横比更改为定义的纵横比,例如方形,那么我们应该保持宽度并将高度重置为自动-以使用纵横比。你觉得怎么样?

@阿杰伦德
复制链接
贡献者

阿克伦德 评论2023年5月31日

谢谢你的回答!

“自定义”必须是列表的一部分。

说得好。我几乎想把它贴上“自由形式”的标签。

如果设置了高度和宽度,那么纵横比应该是“自定义”的,并且高度/宽度用作纵横比CSS。

在这里集思广益,明确宽度和高度控制改变了其含义。可能是“使用宽度/高度作为纵横比”?这看起来有点长,但我担心,实际上,宽度/高度的作用可能会有一些混淆。

如果我从自定义/自由形式的纵横比更改为定义的纵横比,例如方形,那么我们应该保持宽度并将高度重置为自动-以使用纵横比。你觉得怎么样?

👍

@里奇塔博
复制链接
成员 作者

我认为很明显,“自定义”将使用高度/宽度值。当高度和宽度更改时,也更有可能应用“自定义”(而不是从“选择”中选择)。

如果选择自定义,我们也许可以使用附加的描述性文本;但我没有阻拦。

@里奇塔博
复制链接
成员 作者

我会说“经典”让我想到3:2而不是4:3。不知道为什么我们选择4:3作为裁剪工具,但既然我们已经偏离了这个标准,也许我们可以在这里使用3:2?

我已将上述提案更新为:

CleanShot 2023-05-31,15 59 25

我想我很喜欢它。当然可以进一步迭代,但不能成为拦截器。

@阿杰伦德
复制链接
贡献者

@里奇塔博在我试图实现这一点的过程中,我又在努力解决自定义比率的细节问题。

目前,图像块尺寸表示像素值,但在许多其他地方,如后特征图像块,字段包括可选单元。我在你的设计中看到了单位,我不想为特定于图像块的纵横比添加第二个实现,所以我想在我的PR中为图像块添加单位。

我在尝试做这件事的时候遇到了三个问题。

  1. 纵横比是无单位的。如果我们要替换宽度/高度控件来表示纵横比,那么只有在单位相同的情况下才能真正做到这一点。我无法转换宽度:100%;高度:300px;在不知道页面布局和转换%二甲苯反之亦然。如果单位不同,我只想清除这些值,但当选择比率时,输入的值消失了,单位也消失了,这真的不太好。

  2. 正在从切换二甲苯单位设置为默认值高度:自动;最大宽度:100%;将更改页面的布局。即使我们为不使用单元控件的图像块创建单独的实现,也存在此问题,因为仍然存在隐式二甲苯单位。选择纵横比的人会惊讶地发现,当他们选择纵横比时,200px宽的图像突然变为全宽。如果他们想保持200px的宽度,他们必须知道添加一个可以设置宽度的包装块。它删除了人们在选择纵横比时习惯于在图像块中使用的功能,这感觉不太好。

  3. Post Featured Image块当前支持使用选定的纵横比设置自定义宽度。使用这些设计将删除此功能。允许现有块仍然像以前一样渲染并不是问题,但从用户体验的角度来看,该功能可能会丢失。

问题1和3可以通过为图像块创建第二个实现来解决,但最终我们希望在所有地方都使用相同的实现——这只是推迟了问题的出现,并通过弃用和向后兼容性增加了额外的复杂性。

@里奇塔博
复制链接
成员 作者

我在你的设计中看到了单位,我不想为图像块的纵横比添加第二个实现,

所以我想把单位添加到图像块中,作为我的PR的一部分。

从像素单位切换到默认高度:auto;最大宽度:100%;将更改页面的布局。

我认为我们不应该对最初的实现做太多的更改。我可以省略单位;只需使用px(按原样)和auto。

Post Featured Image块当前支持使用选定的纵横比设置自定义宽度。使用这些设计将删除此功能。

我没有跟上。如果应用纵横比(例如1:1),我们将其设置为自动,但如果您键入一个整数值,则应该应用该值-就像下面的视图中一样,我将为宽度添加100(px)。结果将是一张100x100px的图像。

CleanShot 2023-06-10,11 24 22

@里奇塔博
复制链接
成员 作者

选择纵横比的人会惊讶地发现,当他们选择纵横比时,200px宽的图像突然变为全宽。

我们不需要将图像设置为全宽/更宽,只需使用固有的宽度值即可。如果我上传一个800px宽的图像,并选择1:1的纵横比,则为800x800px。

@阿杰伦德
复制链接
贡献者

阿杰伦德 评论2023年6月10日

我们不需要将图像设置为全宽/更宽,只需使用固有的宽度值即可。如果我上传一个800px宽的图像,并选择1:1的纵横比,则为800x800px。

假设我上传了一张分辨率为3840x2160px的图像。在编辑器中,我将宽度更改为800px,这样页面就不会太宽了。然后我选择1:1纵横比。现在页面上的图像大小是3840x3840px,而不是我想要的800px。

@阿杰伦德
复制链接
贡献者

css更改自

高度以下为:自动;最大宽度以下为: 100%;宽度以下为: 800二甲苯;

高度以下为:自动;最大宽度以下为: 100%;纵横比以下为: 1;

如果高度和宽度控件的含义应该表示纵横比。

@阿杰伦德
复制链接
贡献者

阿杰伦德 评论2023年6月10日

我认为我们不应该对最初的实现做太多的更改。我可以省略单位;只使用px(as-is)和auto。

我想对Post Featured Image使用相同的组件,这样将删除现有的单元选择功能。

形象

@猪
复制链接

评论2023年6月12日

当您这样做时,请仔细观察以下方面:

  1. 通过拖动手柄调整大小:按比例调整大小。
    • 临时替代比例调整大小的修改键:不提供。那就好了。
    • 建议的修改键应遵守设计应用程序约定:
      • SHIFT切换成比例调整大小
      • ALT从中心调整大小(如果合适)。
      • CMD将捕捉切换到最近的预设AR(如果已实现)
    • 一旦触发手动覆盖,下拉菜单(如模型中所示)将需要更新为“自定义”。
      • 进一步调整大小将保持该“自定义”AR。
      • 稍后再次使用修改键将再次将“自定义”AR更新为新值。
  2. 按数字字段调整图像大小
    • 大多数情况下会在不保持纵横比的情况下调整大小。
    • 但有几次我经历了数字调整(通过三种方法之一:数字输入、向上/向下箭头键、numfield中的向上/下箭头按钮)保持纵横比!
    • 我无法可靠地重现前提条件,但我记得,在num-input之前,我通过句柄调整了实例的大小。
    • 观察范围:WordPress 6.2,插件Gutenberg 15.9.1,Safari 16.5,macOS 11 Big Sur

@猪
复制链接

WordPress。图像。模块1.牵引把手.尺寸.比例.mp4
WordPress。图像。方框2.数字输入.尺寸.非比例.mp4
WordPress。图像。块3.数字输入.有时.按比例调整大小.mp4

@阿杰伦德
复制链接
贡献者

@猪感谢您抽出时间制作视频。在进行此操作时,我会记住它们,但拖动和修改键与可调整框大小组件,这将增加此问题的范围。你介意就这些问题单独提出一个新问题吗?

@阿杰伦德
复制链接
贡献者

@里奇塔博我想我刚才被设计中消失的单元搞糊涂了。休息后回到这里,我想您的目的是让宽度/高度控制始终控制宽度高度CSS属性一如既往。

“自定义”纵横比实际上不应该创建自定义纵横比,它甚至可能不需要设置纵横比属性(如果在CSS中同时指定了宽度和高度)。

@里奇塔博
复制链接
成员 作者

“自定义”纵横比实际上不应该创建自定义纵横比,如果在CSS中同时指定了宽度和高度,它甚至可能不需要设置aspect-ratio属性。

如果高度和宽度都更改,只要宽高比未设置。

@github操作 github-操作 机器人补充这个[状态]正在进行 跟踪正在进行的工作中的问题标签2023年6月15日
免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
[块]图像 影响图像块 [类型]增强功能 改进的建议。
项目
还没有
开发

成功合并请求可能会解决此问题。

4名参与者