2016-08-31 11 views
0

私は、pdarkとhtml flexdashboardの両方を生成するRMarkdownファイルで作成しているテーブルにパディングを追加しようとしています。私は(pander、xtable、DTなど)使用できる関数/パッケージがいくつかあることを知っていますが、knitrパッケージのkable関数を使用することをお勧めします。r knitr kable paddingがformat = "html"で動作しない

私が抱えている問題は、パディング引数が機能していないようです。ドキュメントにカスタムCSSを追加することなくこれを解決するための助けに感謝します。

例として、パディングを0、10、20に設定してコードを実行しようとしましたが、テーブルはすべてhtmlファイルで同じに見えます。

knitr::kable(head(cars), format = "html", padding = 0) 
knitr::kable(head(cars), format = "html", padding = 10) 
knitr::kable(head(cars), format = "html", padding = 20) 

enter image description here

私はknitr_1.14とrmarkdown_1.0を使用していて、次のように私のセッション情報があります。

R version 3.3.0 (2016-05-03) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 
+0

例では「html」の形式で使用されているパディングは表示されません。しかし、この投稿に基づいてhttp://stackoverflow.com/questions/17717323/align-two-data-frames-next-to-each-other-with-knitrあなたが試みることができる> kable(head(cars)、format = ' html '、table.attr =' cellpadding = "10" ') –

+0

提案をいただきありがとうございます。 Martinのように、table.attr = 'cellpadding = "10"'を動作させることができません。 – MCDAngelo

答えて

4

オプションtable.attr='cellpadding="20px"'は私にとっては機能しません。 CSSスタイルを使用し、table.attr='class="myTable"'を使ってテーブルにクラスを追加すると、(たとえ1つのテーブルだけが新しいクラスを運んでいても)すべてのテーブルが望ましいパディングプロパティを持ちます。

私は、私は通常、jQueryを使って行く1つのテーブルを変更する場合:

--- 
title: "Table Cell Padding" 
output: html_document 
--- 

```{r} 
knitr::kable(head(cars), format = "html") 
``` 
```{r} 
knitr::kable(head(cars), format = "html", table.attr='class="myTable"') 
``` 
<style> 
    .myTable td { 
    padding: 40px; 
    } 
</style> 

enter image description here


別のオプションは、個々の要素を編集するにjQueryを使用することです。次の例では、上記のCSSスタイルと同じ方法でテーブルを変更しています。

<script type="text/javascript"> 
    // When the document is fully loaded... 
    $(document).ready(function() { 
    // ... select the cells of the table that has the class 'myTable' 
    // and add the attribute 'padding' with value '20px' to each cell 
    $('table.myTable td').css('padding','20px'); 
    }); 
</script> 

ここでは、変更したいテーブルにクラスmyTableを追加します。その後、JavaScriptを実行します(コメントを参照)。 同じ方法で他のCSSプロパティをテーブル要素(またはテーブル自体$('table.myTable').css(...))に追加することができます(例:$('table.myTable td').css('background-color','red');

+0

私はCSSやJavaScriptの追加を避けたいと考えていましたが、これがデフォルトのテーブルプロパティを上書きする唯一の方法だと思われます。この例をありがとう! – MCDAngelo

関連する問題