如何覆盖 TinyMCE 图像右对齐的默认实现?

发布于 2025-01-10 21:44:47 字数 609 浏览 0 评论 0原文

我正在使用 TinyMCE V5 使我的用户能够编写电子邮件模板。

由于我们处理的是电子邮件模板,因此存在 Outlook 问题。 Outlook 不支持多种样式和元素。

在这里,我专注于以 Outlook 可以理解的方式对齐图像。

TinyMCE对图像对齐的默认实现是:

  • 右对齐>将 style="float:right;" 添加到 img 标签
  • 以实现居中对齐 >将 style="display:block;margin-left:auto;margin-right:auto;" 添加到 img 标记

Outlook 不支持浮动也不支持自动边距。

有没有办法可以覆盖 TinyMCE 图像对齐的方式?

如果是这样,我会将 text-align:right 添加到 p 标记,并使 img 具有 display:block.

我知道这将导致不可能在同一段落中将两个图像对齐到不同的侧面,我对此表示同意。

I am using TinyMCE V5 to enable my users to write email templates.

Since we're dealing with email templates, there's the Outlook problem. Outlook does not support a wide variety of styles and elements.

Here I am focused on aligning images in a way that Outlook can understand.

TinyMCE default implementation of alignment for images is:

  • for right alignment > adds style="float:right;" to the img tag
  • for center alignment > adds style="display:block;margin-left:auto;margin-right:auto;" to the img tag

Outlook doesn't support float nor auto margins.

Is there a way I can override how TinyMCE does alignment for images?

If so, I'd add text-align:right to the p tag, and make img have display:block.

I am aware that this would make it impossible to have two images aligned to different sides in the same paragraph, and I'm OK with that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

星星的轨迹 2025-01-17 21:44:47

我向 Tiny 开了一张支持票,他们很快就找到了解决方案,即使用 formats 选项,如下所示:

tinymce.init({
    selector: "textarea",
    plugins: ["code", "image", "paste"],
    toolbar: "bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | image",
    formats: {
      alignleft: {selector: 'p', styles: {'text-align':'left'}},
      aligncenter: {selector: 'p', styles: {'text-align':'center'}},
      alignright: {selector: 'p', styles: {'text-align':'right'}}
    },
});

I opened a support ticket with Tiny, and they were quick and helpful in finding the solution, which was to use the formats option like so:

tinymce.init({
    selector: "textarea",
    plugins: ["code", "image", "paste"],
    toolbar: "bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | image",
    formats: {
      alignleft: {selector: 'p', styles: {'text-align':'left'}},
      aligncenter: {selector: 'p', styles: {'text-align':'center'}},
      alignright: {selector: 'p', styles: {'text-align':'right'}}
    },
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文