防止 HTML 表格在四开中使用整个页面宽度

问题描述 投票:0回答:3

我想在四开中使用 HTML 表格,但我想阻止它使用整个页面宽度。这是一个可重现的示例:

---
title: "HTML tables in Quarto"
format: html
---

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 1

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 2 {tbl-colwidths="[75,25]"}

输出:

enter image description here

我们可以看到,表1是正常的,你可以看到它占据了整个页面的宽度。表 2 有

tbl-colwdiths
选项,但这并不会使表格的宽度变小,而且还是整个页面的宽度。所以我想知道是否有人知道如何防止 HTML 表格在
Quarto
中使用整个页面宽度?

html layout quarto
3个回答
5
投票

也许使用 css 网格系统:

---
title: "HTML tables in Quarto"
format: html
---

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 1

::: {.grid}

::: {.g-col-7}

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 2 

:::
:::

enter image description here

编辑:如果你想居中,你可以利用 css 网格中默认的十二列,例如

::: {.grid}

::: {.g-col-2}
:::


::: {.g-col-8}

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 2 

:::

::: {.g-col-2}
:::

:::

2
投票

使用

.columns
div 获取列布局的一个可能选项

---
title: "HTML tables in Quarto"
format: html
engine: knitr
---


:::: {.columns}
::: {.column width="70%"}

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 1

:::
::::


```{css, echo=FALSE}
.center-table table {
  width: 50%;
  margin-left: auto;
  margin-right: auto;
}
```

::: {.center-table}

| fruit  | price  |
|--------|--------|
| apple  | 2.05   |
| pear   | 1.37   |
| orange | 3.09   |

: Table 2

:::

enter image description here


0
投票

如果您的表格来自计算,您可以通过将 Shafee 的 CSS 片段包含在四开块选项中来应用更优雅的形式。 与使用列相比,这可以节省几行代码,并且可以更轻松地应用于许多表,尽管它缺乏专门定义列宽度所允许的灵活性。

这是结合了 Shafee 在另一个问题上的回答 以及关于 表格样式的四开本指南。

样式.css

.center-table table {
  width: 50%;
  margin-left: auto;
  margin-right: auto;
}

doc.qmd

---
title: "HTML tables in Quarto"
format:
  html:
    css: styles.css
---
    
```{r}
#| tbl-cap: Fruit Prices
#| label: tbl-mytable
#| echo: false
#| classes: .center-table

tibble::tribble(
    ~fruit, ~price,
    "apple", 2.05,
    "pear", 1.37,
    "orange", 3.09
) |> 
    knitr::kable()
```

quarto output

© www.soinside.com 2019 - 2024. All rights reserved.