我有一个使用Slate的项目,它允许使用以下格式的表格标记。
Name | Value
-------|-------------------
`Value-One` | Long explanation
`Value-Two` | Long explanation
`etc` | Long explanation
我的问题是第一列渲染得太窄,并且正在包装内容(即将代码值分成两行),而不是将其显示在一行上。我的偏好是第一列足够宽以完全显示名称/键,然后第二列可以占用剩余的可用空间。
我的问题是,是否有可能(以及如何)通过标记设置列宽,或者至少通过标记向表中添加一个类(这样我就可以通过CSS设置特定的表格)。或者有更好的方法吗?我不想用完整的HTML写出表格(这将是最后的选择)。
答案 0 :(得分:20)
我很长一段时间都在寻找答案,最终找到了解决方案。 markdown列的宽度由列中最长的单元格确定,因此请根据需要多次使用html space entity
来扩展列。
它在编辑模式下看起来很丑陋,但最终还是诀窍:
Name | Value
-------|-------------------
`Value-One` | Long explanation
`Value-Two` | Long explanation
`etc` | Long explanation
答案 1 :(得分:10)
简单添加具有预定义宽度的空<img>
标签对我来说是有效的:
|Name|Value|
|----|---------|
|<img width=200/>|<img width=500/>|
大概是否起作用取决于所使用的解析器。以上是在BookStack中。
事实证明,它还取决于用于查看结果表的浏览器。因此,它不一定在所有情况下都有效。
答案 2 :(得分:9)
如果Markdown风味支持div
元素和内联HTML(也在表格中),则该解决方案可以工作:
| <div style="width:290px">property</div> | description |
| --------------------------------------- | ------------------------------------- |
| `border-bottom-right-radius` | Defines the shape of the bottom-right |
好像是板岩supports inline HTML。
答案 3 :(得分:7)
我不确定这是否适用于你的情况。
您可以尝试将表格包装成div,然后通过CSS设置样式:
<div class="foo">
Header | header
------ | -----
Bar | bar
</div>
CSS:
.foo table {
styles...
}
应该工作。
希望有所帮助!
答案 4 :(得分:4)
除了前面提到的内容之外,我还有两个关于如何控制HTML中的列宽或使用pandoc从MD生成的潜在PDF的提示。
<强> 1。 mutliline tables 强>
查看文档以获取详细信息,以下是两个允许您根据需要调整列宽的示例。
来自文档:
在多行表中,表解析器会关注列的宽度,并且编写器会尝试在输出中重现这些相对宽度。因此,如果您发现其中一列在输出中太窄,请尝试在Markdown源中加宽它。
A)
-----------------------------------------------------------------------
type A B
----- -------------------------------- --------------------------------
abc ![img](assets/some-image-n1.png) ![img](assets/some-image-n2.png)
defg ![img](assets/some-image-n3.png) ![img](assets/some-image-n4.png)
-----------------------------------------------------------------------
b)中
----------- ------- --------------- -------------------------
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Here's another one. Note
the blank line between
rows.
----------- ------- --------------- -------------------------
: Here's a multiline table without headers.
<强> 2。在表格中控制图像宽度
我经常发现自己在从markdown生成图像表时处理溢出问题。将宽度= XYZpx参数传递给markdown图像解析器对我来说非常简单:
type | *A* | *B*
:---: | :---: | :---:
abc |![img](assets/some-image-n1.png){width=200px}|![img](assets/some-image-n2.png){width=200px}
def |![img](assets/some-image-n3.png){width=200px}|![img](assets/some-image-n4.png){width=200px}
您还可以在降价时检查this answer正确调整图像大小。
答案 5 :(得分:4)
尝试一下:
<style>
table th:first-of-type {
width: 10%;
}
table th:nth-of-type(2) {
width: 10%;
}
table th:nth-of-type(3) {
width: 50%;
}
table th:nth-of-type(4) {
width: 30%;
}
</style>
+---------+---------+---------+----------+
| Header1 | header2 | header3 | header4 |
+---------+---------+---------+----------+
| Bar | bar | bar | bar |
+---------+---------+---------+----------+
答案 6 :(得分:0)
您可以根据需要多次附加垂直条形管道。这样,即使在编辑模式下,语法看起来也更加友好。 示例:
|Name||||||||Value||||||||
|Key1||||||||value2||||||||
|Key2||||||||value2||||||||
|Key3||||||||value3||||||||
我猜想这种技术更方便,因为它在jupyter中不使用CSS。
答案 7 :(得分:0)
这太荒谬了,但我最终还是这样做了:
|` Name `|` Value `|
|----|---------|
|value1|value2|
通过`符号强制使用这些空格。