技术方案来自木木木木木的多图排版,CSS 代码如下,.post-content
根据博客实际类调整:
.post-content p:has(> img:nth-child(2)){column-count:2;column-gap:8px;margin:6px 0;}
.post-content p:has(> img:nth-child(3)){column-count:3;}
.post-content p:has(> img:nth-child(4)){column-count:4;}
.post-content p:has(> img:nth-child(5)){column-count:5;}
.post-content p:has(> img:nth-child(6)){column-count:4;}
.post-content p:has(> img:nth-child(2)) img{display:inherit;}
.post-content p:has(> img:nth-child(6)) img{margin-bottom:8px;}
一行两图效果
两行三图效果
需要排版在同一行的多个图片 markdown 语法不换行,在<p>
里不产生<br>
标签。
![](https://vip1.loli.io/2022/02/26/DgYmJuhGzrn5aOe.jpg)
![](https://vip1.loli.io/2022/02/26/gqwS2yeujm3TflK.jpg)
![](https://vip1.loli.io/2022/02/05/mep5Qx6Jah3RS4l.jpg)
如果以上方法没生效, 可能解析 markkdown 语法设置没有开启严格换行,导致每一个换行都会解析成<br>
。如果是 Hexo,需要在根目录的_config.yml
增加一个解析配置。
marked:
gfm: true
breaks: false #Enable GFM line breaks. This option requires the gfm option to be true.
这个图片排版方案有一个缺点,或者叫特性。如果图片比例不一样,会有高低差,这个时候不适合放在同一行,不过已经基本满足需求了。