如何修复此两列幻灯片(代码+图像)的 reveal-md 渲染?
How can I fix the reveal-md rendering of this two-column slide (code+image)?
我正在使用 reveal-md
to render a two-column slide with code and an image, taking inspiration from How to use two-column layout with reveal.js?。
一个可重现的例子是:
---
title: "Bad two-columns rendering"
author: "Yours truly"
---
![tux](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png) <!-- .element: style="float: right; width: 50%" -->
```python
print("Is the rendering bad?")
print("Yeah!")
print("How can you be sure?")
print("Look at the beak of Tux")
```
<!-- .element: style="width: 50%" -->
渲染后,我得到
如果你仔细看,你会发现“代码框”向右过度延伸并与图像重叠(见红色突出显示)
有谁知道如何直接在源 (markdown) 代码中解决这个问题?
这是一个不小的烦恼。我尝试摆弄上面的降价,但无济于事。
另一种方法是使用更现代的 CSS 属性 flex
。我认为您的问题导致您正在使用的环境的一些有线模板设置。所以这是我的第二次尝试:
--
title: "Bad two-columns rendering"
author: "Yours truly"
---
<style>
.container{
display: flex;
}
.col{
flex: 1;
}
</style>
<div class="container">
<div class="col">
```python
print("Is the rendering bad?")
print("Yeah!")
print("How can you be sure?")
print("Look at the beak of Tux")
```
<!-- .element: style="width: 100%;" -->
</div>
<div class="col">
![tux](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png)
</div>
</div>
这里我使用 类 来设置 CSS 属性。
当您使用浮动元素时,您应该浮动这两个元素并更改它们的顺序
.element {
float: left;
width: 50%;
}
整个示例如下所示:
--
title: "Bad two-columns rendering"
author: "Yours truly"
---
```python
print("Is the rendering bad?")
print("Yeah!")
print("How can you be sure?")
print("Look at the beak of Tux")
```
<!-- .element: style="float: left; width: 50%;" -->
![tux](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png)
<!-- .element: style="float: left; width: 50%;" -->
PS:有时将元素设置为 overflow: hidden;
会有所帮助
调试中:
确保源代码看起来像这样:
<section data-markdown="" data-markdown-parsed="true"
style="top: 16.5px; display: block;" class="present">
<pre style="float: left; width: 50%;"><code class="python hljs">
print(<span class="hljs-string">"Is the rendering bad?"</span>)
print(<span class="hljs-string">"Yeah!"</span>)
print(<span class="hljs-string">"How can you be sure?"</span>)
print(<span class="hljs-string">"Look at the beak of Tux"</span>)
</code></pre><!-- -->
<p style="float: left; width: 50%;">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png" alt="tux">
</p>
<!-- -->
</section>
您可以使用浏览器开发者控制台来执行此操作(例如 Chrome DevTools)
我正在使用 reveal-md
to render a two-column slide with code and an image, taking inspiration from How to use two-column layout with reveal.js?。
一个可重现的例子是:
---
title: "Bad two-columns rendering"
author: "Yours truly"
---
![tux](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png) <!-- .element: style="float: right; width: 50%" -->
```python
print("Is the rendering bad?")
print("Yeah!")
print("How can you be sure?")
print("Look at the beak of Tux")
```
<!-- .element: style="width: 50%" -->
渲染后,我得到
如果你仔细看,你会发现“代码框”向右过度延伸并与图像重叠(见红色突出显示)
有谁知道如何直接在源 (markdown) 代码中解决这个问题? 这是一个不小的烦恼。我尝试摆弄上面的降价,但无济于事。
另一种方法是使用更现代的 CSS 属性 flex
。我认为您的问题导致您正在使用的环境的一些有线模板设置。所以这是我的第二次尝试:
--
title: "Bad two-columns rendering"
author: "Yours truly"
---
<style>
.container{
display: flex;
}
.col{
flex: 1;
}
</style>
<div class="container">
<div class="col">
```python
print("Is the rendering bad?")
print("Yeah!")
print("How can you be sure?")
print("Look at the beak of Tux")
```
<!-- .element: style="width: 100%;" -->
</div>
<div class="col">
![tux](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png)
</div>
</div>
这里我使用 类 来设置 CSS 属性。
当您使用浮动元素时,您应该浮动这两个元素并更改它们的顺序
.element {
float: left;
width: 50%;
}
整个示例如下所示:
--
title: "Bad two-columns rendering"
author: "Yours truly"
---
```python
print("Is the rendering bad?")
print("Yeah!")
print("How can you be sure?")
print("Look at the beak of Tux")
```
<!-- .element: style="float: left; width: 50%;" -->
![tux](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png)
<!-- .element: style="float: left; width: 50%;" -->
PS:有时将元素设置为 overflow: hidden;
调试中:
确保源代码看起来像这样:
<section data-markdown="" data-markdown-parsed="true"
style="top: 16.5px; display: block;" class="present">
<pre style="float: left; width: 50%;"><code class="python hljs">
print(<span class="hljs-string">"Is the rendering bad?"</span>)
print(<span class="hljs-string">"Yeah!"</span>)
print(<span class="hljs-string">"How can you be sure?"</span>)
print(<span class="hljs-string">"Look at the beak of Tux"</span>)
</code></pre><!-- -->
<p style="float: left; width: 50%;">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2b/Tux-simple.svg/768px-Tux-simple.svg.png" alt="tux">
</p>
<!-- -->
</section>
您可以使用浏览器开发者控制台来执行此操作(例如 Chrome DevTools)