调整图像大小
图像调整大小功能允许您更改内容中图像的宽度。它是通过 ImageResize
插件实现的。
# 调整图像大小的方法
编辑器提供了不同的方法来调整图像大小,可以使用“调整大小手柄”或使用专用 UI 组件(下拉菜单或独立按钮)。
ImageResize
插件启用了显示在选定图像上的四个调整大小手柄。用户可以通过拖动它们来调整图像大小。您可以配置该功能以使用百分比(默认)或像素值。
该插件还允许您通过单击图像工具栏来更改图像大小。您可以使用 resizeOptions
设置一个可选的静态配置,并选择是否要使用下拉菜单或一组独立按钮。
# 使用调整大小手柄
在这种情况下,您可以通过拖动显示在其每个角上的方形手柄来调整图像大小。启用图像调整大小后,此选项不需要任何额外的配置。
使用角手柄调整图像大小,并根据需要调整到文本。您还可以使用图像工具栏中的对齐选项
来实现所需的效果。图像也可以使用样式进行预调整大小,如下所示(最后三张图像设置为 28% 以确保视觉一致性)。
会说话的鸟
有许多种鸟类可以模仿人类的言语。其中,鹦鹉在流行文化中最为普遍,尽管乌鸦、八哥或椋鸟等其他鸟类也可以模仿人类的声音。其中一些只能重复几个词,而另一些则拥有超过一千个词的丰富词汇量。
最早有记录的会说话的鸟可能是公元前 2500 年希腊历史学家克特西阿斯描述的一只鹦鹉。虽然鸟类重复人类单词的能力是毋庸置疑的,但关于它们是否理解语言以及理解程度存在争议。

著名的会说话的鸟类物种

太阳鹦鹉(Aratinga solstitialis),在鸟类养殖中也被称为太阳锥尾鹦鹉,是一种中等大小、颜色鲜艳的鹦鹉,原产于南美洲东北部。不幸的是,该物种由于栖息地丧失和为贸易而被捕猎而处于濒危状态。
太阳鹦鹉是群居动物,它们会组成大型鸟群,通过言语和非言语方式进行交流,并一起飞翔很远的距离。尽管它们被认为是会说话的鸟,但它们在圈养中的言语和学习技巧的能力相当有限。
听听这只太阳锥尾鹦鹉,它不想被人抚摸。

鸡尾鹦鹉(Nymphicus hollandicus),也被称为 quarrion,是一种原产于澳大利亚的小型鹦鹉。这些可爱的小鸟头顶有一个独特的尖端,在全世界范围内都被人们高度赞赏为家养宠物。它们应该得到很好的照顾。
有些人认为鸡尾鹦鹉很难训练人类语言的奥秘,但实际上,它们柔软的声音需要训练师拥有更好的技能来理解它们模仿的内容。
听听 Butters,这只会说话的鸡尾鹦鹉。

虎皮鹦鹉(Melopsittacus undulatus)是一种小型、长尾、以种子为食的鹦鹉,通常被称为虎皮鹦鹉,在美国英语中被称为鹦鹉。它们经常被饲养为宠物 - 比鸡尾鹦鹉更受欢迎。雄性虎皮鹦鹉在谈话能力方面位列前五位鹦鹉物种。它们模仿能力令人印象深刻:1995 年,卡米尔·乔丹饲养的一只雄性虎皮鹦鹉出现在《吉尼斯世界纪录》中,因为它拥有最大的词汇量,包含 1728 个单词!
听听这只名叫 Kiwi 的神奇虎皮鹦鹉,它会使用三十多个单词。
为了清晰起见,本指南中的所有演示都只展示了一组有限的功能。访问 功能丰富的编辑器示例,以查看更多实际应用。
您可以在 CKEditor 5 WYSIWYG 编辑器中通过两种不同的方式配置通过手柄调整图像大小
-
通过安装
ImageResize
插件。它包含本指南 安装 部分所述的所有必要功能(ImageResizeEditing
、ImageResizeHandles
、ImageResizeButtons
)。 -
通过安装
ImageResizeEditing
和ImageResizeHandles
插件的组合。这将不会加载不必要的ImageResizeButtons
插件
import { ClassicEditor, Image, ImageResizeEditing, ImageResizeHandles } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Image, ImageResizeEditing, ImageResizeHandles, /* ... */ ],
// More of editor's configuration.
// ...
} )
.then( /* ... */ )
.catch( /* ... */ );
这两种方法默认都启用调整大小手柄。
# 使用调整大小下拉菜单
在这种情况下,用户可以选择一组预定义的选项。您可以在用户单击图像后可用的图像工具栏中显示这些选项,以下拉菜单的形式。
要使用此选项,您需要启用图像大小调整并配置可用的大小调整选项。然后将下拉菜单添加到图像工具栏配置中。
const imageConfiguration = {
resizeOptions: [
{
name: 'resizeImage:original',
value: null,
label: 'Original'
},
{
name: 'resizeImage:custom',
label: 'Custom',
value: 'custom'
},
{
name: 'resizeImage:40',
value: '40',
label: '40%'
},
{
name: 'resizeImage:60',
value: '60',
label: '60%'
}
],
toolbar: [ 'resizeImage', /* ... */ ]
}
尝试在图像工具栏中使用的
大小调整下拉菜单的实时演示。巨嘴鸟的大喙


巨嘴鸟的名字来源于图皮人的语言tukana。它们以醒目的彩色喙而闻名,可以在南美洲的热带雨林中找到。巨嘴鸟以其鲜艳的橙色喙而闻名,可能是世界上最容易辨认的鸟类之一。
这些鸟在树上筑巢。由于它们不是最好的飞行者,因此它们更喜欢从一棵树跳到另一棵树。它们可以长到 25 英寸,而它们的喙可以达到令人印象深刻的 7 英寸长。然而,当小鸟孵化时,它们的喙很小,直到后来才会长大。巨嘴鸟的喙很大,但非常轻。它们用喙吸引配偶并抵御竞争对手。
以下示例中的图像经过调整以匹配精确的长宽比,因此可以以相等的高度一起显示。
如果要定义插入图像的可能长宽比,例如允许用户插入 1:1 和 40% 宽度以及 1:2 和 20% 宽度图像,则应使用图像样式功能。
本指南的最后一个示例中包含使用 CSS 修复图像长宽比的示例。
# 使用独立的大小调整按钮
在这种情况下,大小调整选项将显示为单独的按钮。此解决方案的优点是 UX 最流畅,因为用户只需单击一次即可调整图像大小。
要使用此选项,您需要启用图像大小调整并配置可用的大小调整选项。然后将适当的按钮添加到图像工具栏配置中。
const imageConfiguration = {
resizeOptions: [
{
name: 'resizeImage:original',
value: null,
icon: 'original'
},
{
name: 'resizeImage:custom',
value: 'custom',
icon: 'custom'
},
{
name: 'resizeImage:50',
value: '50',
icon: 'medium'
},
{
name: 'resizeImage:75',
value: '75',
icon: 'large'
}
],
toolbar: [
'resizeImage:50',
'resizeImage:75',
'resizeImage:original',
'resizeImage:custom',
// More toolbar options.
// ...
]
}
尝试在图像工具栏中使用的
独立大小调整按钮的实时演示。成为食蜂鸟真是一种享受!



食蜂鸟是中等大小的鸟类(根据物种的不同,它们可达 6 到 14 英寸),可以在欧洲、亚洲、非洲和澳大利亚的热带和亚热带地区找到。它们主要呈现鲜绿色,并带有红色、黄色、紫色和蓝色色调。
这些鸟用它们强壮、中等长度、尖尖的喙捕捉昆虫——主要是蜜蜂(因此得名)和黄蜂。食蜂鸟是凶猛的猎手,能够在空中捕捉到食物。它们非常社会化。它们的群体很大,通常超过 100 只,如果条件允许,有时甚至多达 200 只。科学家认为食蜂鸟可以通过声音识别它们的亲密伙伴——父母和兄弟姐妹。
# 禁用图像大小调整手柄
如果要以用户只能通过按钮调整图像大小的方式配置编辑器,则可以省略ImageResizeHandles
插件来实现。
因此,您的插件设置应如下所示:plugins: [ 'ImageResizeEditing', 'ImageResizeButtons', /* ... */ ]
,而不是 plugins: [ 'ImageResize', /* ... */ ]
。
这将仅通过选定的 UI 启用图像大小调整功能:图像工具栏中的下拉菜单或独立按钮。
import { ClassicEditor, Image, ImageResizeButtons, ImageResizeEditing, ImageToolbar } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Image, ImageResizeEditing, ImageResizeButtons, ImageToolbar, /* ... */ ],
image: {
resizeOptions: [
{
name: 'resizeImage:original',
value: null,
icon: 'original'
},
{
name: 'resizeImage:custom',
value: 'custom',
icon: 'custom'
},
{
name: 'resizeImage:50',
value: '50',
icon: 'medium'
},
{
name: 'resizeImage:75',
value: '75',
icon: 'large'
}
],
toolbar: [
'resizeImage:50',
'resizeImage:75',
'resizeImage:original',
'resizeImage:custom',
// More toolbar options.
// ...
] }
} )
.then( /* ... */ )
.catch( /* ... */ );
# 标记和样式
调整图像大小后,将使用内联width
样式,并且编辑器会将image_resized
类分配给<figure>
元素。
<figure class="image image_resized" style="width: 75%;">
<img src="..." alt="...">
</figure>
image_resized
类用于禁用图像样式分配的max-width
(如果将此样式应用于此图像)。例如,“侧边图像”样式定义如下
.ck-content .image-style-side {
max-width: 50%;
float: right;
margin-left: var(--ck-image-style-spacing);
}
max-width
将通过以下规则覆盖
.ck-content .image.image_resized {
max-width: 100%;
}
为调整大小的图像设置样式时,另一个问题是,默认情况下,CKEditor 5 对<figure class="image">
元素使用display: table
,以使其占据其中<img>
元素的大小。不幸的是,浏览器尚不支持在使用display: table
样式的同一元素上使用max-width
和width
。因此,调整图像大小时需要使用display: block
。
.ck-content .image.image_resized {
display: block;
box-sizing: border-box;
}
.ck-content .image.image_resized img {
width: 100%;
}
.ck-content .image.image_resized > figcaption {
display: block;
}
# 使用像素值而不是百分比宽度
使用百分比宽度可确保内容在 WYSIWYG 编辑器以外的位置显示时保持响应。当用户在编辑器中使图像占据内容宽度的 60%(例如)时,如果您更改目标页面(显示此内容的页面)的宽度,图像仍将占据该空间的 60%。如果页面是响应式页面并根据视窗宽度进行调整,也是如此。
如果您配置了编辑器以使用像素值,则在为网站引入新布局后,图像可能会占据太多空间。
但是,在某些情况下,您可能更喜欢像素值。因此,您可以通过设置config.image.resizeUnit
选项来配置编辑器以使用像素值。
ClassicEditor
.create( editorElement, {
image: {
resizeUnit: 'px',
resizeOptions: [
{
name: 'resizeImage:original',
label: 'Original',
value: null
},
{
name: 'resizeImage:custom',
label: 'Custom',
value: 'custom'
},
{
name: 'resizeImage:100',
label: '100px',
value: '100'
},
{
name: 'resizeImage:200',
label: '200px',
value: '200'
}
]
}
} )
.then( /* ... */ )
.catch( /* ... */ );
以下演示使用 CSS 设置固定图像长宽比,因此 200 像素宽的图像会自动获得相同的高度。
.ck.ck-content .image {
position: relative;
}
.ck.ck-content .image img {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 50%;
}
.ck.ck-content .image::before {
content: '';
padding-top: 100%;
display: block;
}
查看以下实时演示中的差异。
小麦上的罂粟花
海伦·亨特·杰克逊

沿着安科纳的山丘,闪耀的热量,
一股热带的空气潮汐,起伏不定,
沐浴着所有的麦田,直到它们发光
就像闪烁的绿色海洋,翻滚拍打
围绕着葡萄藤。罂粟花柔软轻盈
似乎像燃烧的火炬手一样,来回奔跑
标记着海岸。
农民不知道
它们就在那里。他沉重地走着,
数着秋天的收获带来的面包和葡萄酒,
但我——我笑着想,日子还在
也许留给我,即使面包很甜
不再,红酒白白温暖我的血液,
我会高兴地回忆起那些灵活的,
轻盈的罂粟花像火炬手一样在小麦田里奔跑。

# 图像优化和响应式图像
使用CKBox 文件管理器服务时,它会生成一组调整大小的优化图像。用户可以在需要时调用这些调整大小的版本。要了解有关这些功能的更多信息,请参阅响应式图像指南和CKBox 转换指南。
# 安装
要启用它,您需要安装ImageResize
插件,该插件包含所有所需功能(ImageResizeEditing
、ImageResizeHandles
、ImageResizeButtons
)。
import { ClassicEditor, Image, ImageResize } from 'ckeditor5';
ClassicEditor
.create( document.querySelector( '#editor' ), {
plugins: [ Image, ImageResize, /* ... */ ],
// More of editor's configuration.
// ...
} )
.then( /* ... */ )
.catch( /* ... */ );
# 通用 API
ImageResize
插件注册以下内容
- 图像大小调整按钮(在图像工具栏中使用)。
'resizeImage'
命令,它接受目标宽度。
我们建议在开发和调试时使用官方的CKEditor 5 检查器。它将为您提供有关编辑器状态的大量有用信息,例如内部数据结构、选择、命令等等。
# 贡献
此功能的源代码在 GitHub 上可用,地址为 https://github.com/ckeditor/ckeditor5/tree/master/packages/ckeditor5-image。
我们每天都在努力使我们的文档保持完整。您是否发现了过时的信息?是否缺少某些内容?请通过我们的问题跟踪器报告。
随着版本 42.0.0 的发布,我们重写了大部分文档以反映新的导入路径和功能。感谢您提供反馈,帮助我们确保文档的准确性和完整性。