Markdown中如何设置图片居中
Markdown默认并不支持排版,排版需要借助HTML/CSS来实现
遇到这个问题时,网上搜索发现很多人都有相同需求,但看到的答案却大多不怎么满意,因此这里整理一下。说是Markdown中图片居中,但此处针对的是Markdown转化的网页图片居中,更具体的是针对Hexo写博客情况。
Markdown默认并不支持排版,排版需要借助HTML/CSS来实现,如果你不懂HTML/CSS,也不想去了解,那么最直接的方法是换一个Hexo主题,很多主题中图片默认都是居中的。
这里总结了常见的图片居中办法,如果想要更详细的了解代码的具体意义,可以查看网页排版以及文末的参考链接。
<center>
标签
实现图片居中,最简单的方法是使用HTML的center标签<center>...</center>
,网上可以看到不少这个答案。但注意该标签在HTML5中已移除,因此不建议使用。
inline样式
网上常见的第二种做法是使用内联样式:
1 | <div style="text-align: center;"> |
在VSCode中预览时确实有效,需要注意的是插入图片行与<div>
起始标签间要有空行,否则图片无法正常显示。不过在使用Hexo的tranquilpeak主题时,上述做法居然无效,如果换用<figure>
标签,有效果但也不是居中。出现这种情况是由于Markdown与HTML混排的限制,具体可参考网页排版:Markdown混排,总之同样不推荐这种方法。
内部样式表(推荐)
由于转换为网页时,Markdown插入图片的语句会对应于img元素,因此我们可以直接调整img元素样式。
在Markdown文档中插入以下HTML/CSS代码,便可使文章中所有插入的图片都居中:
1 | <style type="text/css"> |
图片的其他属性如大小/宽度等都可以在此处统一调整,如width: 80%;
。
当然也可以吧这几行规则保存到单独的CSS文件,作为外部样式表使用资源链接<link>
引入;又或者修改所用主题页面主体(body)部分的CSS设置,对整个站点的所有图片都生效。
img标签(推荐)
上述方法会改变全文所有图片排版,如果只想调整个别图片,我们可以使用<img>
标签,直接用HTML代码插入图片:
1 | <img style="display: block; margin: 0 auto;" src="/path/to/image" alt="" /> |
Hexo标签插件
最后,对于Hexo还可以使用img标签插件,该插件支持设置类名,从而控制图片排版:
1 | {% img center /path/to/image %} |
同时在文章中加入以下HTML/CSS代码,定义center类
1 | <style> |
参考链接
使用css让markdown生成的网页里图片居中
You Can’t Float Center with CSS