问题描述
这个问题是从 this discussion 中删除图像中的维度属性的分支。该线程上提供的解决方案代码工作得非常好,除了它有不利的副作用,任何快捷方式从图像中分条。
经过几个小时的挖掘核心代码,我发现了这个原因。 wpeditimage TinyMCE 插件,负责在短码和 img
标签中添加短码检查宽度属性。如果没有找到它们,它只会删除标题。既然,这是在 TinyMCE 编辑器中的 「在飞」 中完成的,我无法想到任何类型的 WordPress 过滤器可以解决这个问题。我很高兴被证明是错误的。 🙂
作为最后的注释,我的临时解决方案是使用以下 jQuery 来剥离客户端的所有违规标签。这与 img_caption_shortcode
上的一个过滤器结合使用,以防止在那里使用宽度样式,似乎做了这个工作。这不漂亮,但现在是一个 band-aid 。任何人有更好的主意?
// Strip width and height attributes from img, video, and object in the main article so we can have fluid images
var $fluid_items = $('.main-article-wrapper').find('img,video,object');
$fluid_items.removeAttr('width');
$fluid_items.removeAttr('height');
最佳解决方案
这可能不是您确切的答案,但我认为我只是找到了一个很好的解决方法。
我从 twenty-eleven 主题 CSS(谁是整齐地响应的 imho) 采取以下代码:
/* Images */
.entry-content img,
.comment-content img,
.widget img {
max-width: 97.5%; /* Fluid images for posts, comments, and widgets */
}
img[class*="align"],
img[class*="wp-image-"] {
height: auto; /* Make sure images with WordPress-added height and width >attributes are scaled correctly */
}
img.size-full {
max-width: 97.5%;
width: auto; /* Prevent stretching of full-size images with height and >>width attributes in IE8 */
}
这是令所有图像响应 (至少嵌入在内容中的…) 现在我有响应图像,但是当使用标题时,我仍然有同样的问题,这是因为 tinyMCE 添加一个样式属性到具有图像宽度的字幕容器。要解决这一切,我必须做的是将其添加到我的 CSS:
.wp-caption { max-width: 100%; }
完成!对我来说很好,虽然它可能不适用于特色图片。
我希望这有助于某人:-)
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。