我使用reveal.js并在Markdown代码中编写我的幻灯片。现在我想在经典的两列文本布局中显示我的内容(文本,无序的项目符号列表甚至图像)。我更喜欢在初始配置中可能更复杂的解决方案,只要在Markdown中实际写入内容仍然很容易。
由于我不想运行本地服务器,因此我在主HTML文件中写下了markdown。
更新:第一个答案表明应该用CSS实现。 (我相应地更新了我的问题。)但是,我找不到任何关于如何用CSS做的描述。
答案 0 :(得分:19)
我在外部css文件custom.css中创建了两个ID,我将其附加到我的reveal.js文件中,并在YAML标头中添加字段css:custom.css。
#left {
left:-8.33%;
text-align: left;
float: left;
width:50%;
z-index:-10;
}
#right {
left:31.25%;
top: 75px;
float: right;
text-align: right;
z-index:-10;
width:50%;
}
我在我的降价文档中放置了带有右和左ID的div元素,以生成两列布局。
<div id="right">
- You can place two graphs on a slide
- Or two columns of text
- These are all created with div elements
</div>
答案 1 :(得分:18)
我正在使用CSS flex,它工作正常。
<style>
.container{
display: flex;
}
.col{
flex: 1;
}
</style>
<div class="container">
<div class="col">
Column 1 Content
</div>
<div class="col">
Column 2 Content
</div>
</div>
答案 2 :(得分:7)
我用两个浮动<div>
解决了问题 - 元素:
<section>
<div style="text-align: left; float: left;">
<p data-markdown>- This is my first left element</p>
<p data-markdown>- This is my second left element</p>
<!-- more Elements -->
</div>
<div style="text-align: right; float: right;">
<p data-markdown>- This is my first right element</p>
<p data-markdown>- This is my second rightelement</p>
<!-- more Elements -->
</div>
</section>
我发现,如果你想在div
- 容器中使用降价,你必须将元素包装在p
- 标签中。如果您将data-markdown
写入父section
- 标记,则会在div
我希望我能帮忙!
答案 3 :(得分:5)
.multiCol {
display: table;
table-layout: fixed; // don't fudge depending on content
width: 100%;
text-align: left; // matter of taste, makes imho sense
.col {
display: table-cell;
vertical-align: top;
width: 50%;
padding: 2% 0 2% 3%; // some vertical, and between columns
&:first-of-type { padding-left: 0; } // there's nothing before col1
}
}
将此放入您的自定义主题,即
之前// Theme template ------------------------------
@import "../template/theme";
// ---------------------------------------------
怎么用? - 简单!并不限于2列:
<section>
<h3>Doing two-column (this headline still full-width)</h3>
<div class='multiCol'>
<div class='col'>
Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.
</div>
<div class='col'>
Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt.
</div>
</div>
And simply more regular full-width text in the following. But hey, there is also:
<div class='multiCol'>
<div class='col'>Also works for 3 columns...</div>
<div class='col'>...as we can show in...</div>
<div class='col'>...this example here.</div>
</div>
</section>
<table>
通常被认为是“过时的”(因为它在早期的HTML版本中被广泛滥用,现在仍然是电子邮件中的html ......)但相反至少作为一个属性{ {1}}它有许多合法用途,通常是最简单的解决方案widely compatible。
答案 4 :(得分:2)
CSS Grid Layout允许非常灵活的布局,双列格式和更复杂的布局。
对于两列,可以使用以下CSS片段。它定义了两个具有相同大小的列模板,每个模板的可用宽度为1个分数(1fr
),列之间的沟槽空间为10px。
.twocolumn {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 10px;
text-align: left;
}
可以使用如下
<section>
<h2>Slide Title</h2>
<div class="twocolumn">
<div>
Column One
</div>
<div>
Column Two
</div>
</div>
</section>
答案 5 :(得分:1)
我无法完全理解你,但我想你可能会在ramnathv帖子中找到答案。
---
layout: slide
---
{{{ content }}}
<div class='left' style='float:left;width:{{left.width}}'>
{{{ left.html }}}
</div>
<div class='right' style='float:right;width:{{right.width}}'>
{{{ right.html }}}
</div>
它对我有用
答案 6 :(得分:1)
我发现以下方式以一种似乎在列布局中的方式显示一个元素
Text going to the right <!-- .element: style="float: right; width: 40%" -->
Text going on the left column <!-- .element: style="width: 40%" -->
但实际上它不适用于右侧的多个元素