RMarkdown ioslides双列布局:如何强制指定位置列换行?
解决ioslides双列布局内容意外跨列的问题
我太懂这种糟心的情况了——ioslides默认的.columns-2类用的是CSS多列流式布局,它会自动把内容“流”到下一列,哪怕左列明明还有剩余空间,完全不按咱们的预期来。想要强制在指定位置拆分列,别用默认的多列类,咱们手动用HTML的列容器来控制才是王道,而且完全不用调整图片高度。
解决方案:手动定义独立列
直接把原来的.columns-2替换成手动的<div class="columns">容器,然后把左列文本和右列图片分别放进两个<div class="column">里,这样两部分内容就会被严格限制在各自的列中,不会乱跑。
修改后的完整代码如下:
--- title: "Fixed Column Break" output: ioslides_presentation: widescreen: true --- ## Slide Title {.smaller} ### Slide Subtitle <div class="columns"> <div class="column"> - Some bullet points which take up some space space space space space space space - on the column on the left - which are then wrapped to the right column. - *Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.* - line break after this longer bullet point but instead it breaks in some strange place even though it would have space at the bottom of the left column! </div> <div class="column"> ```{r, echo = FALSE, out.width = "470px"} plot(mtcars) ``` </div> </div>
原理说明
默认的.columns-2依赖CSS的column-count属性,这是一种流式多列布局,它会把所有内容当成一个整体,自动拆分到多列中,完全不会考虑你想在哪里手动拆分。而手动用两个div.column的方式,是把页面分成两个独立的块级元素,每个块的内容完全独立,左列的列表项就只会留在左列,不会跑到右列去。
额外优化:自定义列宽度
如果需要调整两列的宽度比例,还可以给column标签加style属性,比如让左列宽一点,右列窄一点:
<div class="columns"> <div class="column" style="width: 55%;"> <!-- 左列文本内容 --> </div> <div class="column" style="width: 45%;"> <!-- 右列图片内容 --> </div> </div>
这样调整后,你的幻灯片列布局就能完全按照预期工作啦!
内容的提问来源于stack exchange,提问作者loki
相关产品推荐
相关产品推荐

