2013-09-29 53 views
1

我已经创建了谷歌可视化一表,使用下面的代码:应用CSS到谷歌可视化表

<html> 
    <head> 
     <script type='text/javascript' src='https://www.google.com/jsapi'></script> 
<script type='text/javascript'> 
google.load('visualization', '1', {packages:['table']}); 
     google.setOnLoadCallback(drawTable); 
     function drawTable() { 
     var cssClassNames = { 
    'headerRow': 'headerRow', 
    'tableRow': 'tableRow'}; 
var options = {'allowHtml': true, 'cssClassNames': cssClassNames, 'alternatingRowStyle': true}; 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Username'); 
     data.addColumn('number', 'Won'); 
     data.addColumn('number', 'Lost'); 
     data.addColumn('number', 'Win/Loss Ratio'); 
     data.addColumn('number', 'Goals For'); 
     data.addColumn('number', 'Goals Against'); 
     data.addColumn('number', 'Score'); 
     data.addRows([ 
      ['Mike', 22, 13, 0.63, 65, 30, 600], 
      ['Andy', 25, 10, 0.71, 60, 18, 630], 
      ['Steve', 5, 20, 0.20, 10, 50, 475], 
      ['Chris', 40, 10, 0.80, 120, 20, 670], 
      ['Jake', 15, 15, 0.50, 70, 50, 525], 
     ]); 
     var table = new google.visualization.Table(document.getElementById('table_div')); 
     table.draw(data, {showRowNumber: true}); 
     } 
    </script> 
    </head> 

    <body> 
    <div id='table_div'></div> 
    </body> 
</html>​ 

我希望能够使用CSS来改变标题行和表行的格式,我不知道如何做到这一点。我已经阅读了Configuration Options,但作为编码方面的新手来说,这并没有帮助,需要逐步解释清楚。

具体是什么我添加到上面的代码告诉图表使用我的自定义CSS。我会把我的主要内容放在什么位置? CSS样式表。不知道是否(为标题)#headerRow { }.headerRow { }

对于您的信息,这是通过Wordpress通过自定义字段插入,如果有任何区别。

如果我对问题没有足够清楚,请跟进。干杯。

更新: @asgallant - 在更改为headerCell和tableCell时仍然无法正常工作。

我当前的代码是: HTML/JavaScript的:

<html> 
    <head> 
     <script type='text/javascript' src='https://www.google.com/jsapi'></script> 
<script type='text/javascript'> 
google.load('visualization', '1', {packages:['table']}); 
     google.setOnLoadCallback(drawTable); 
     function drawTable() { 
     var cssClassNames = { 
    headerCell: 'headerCell', 
    tableCell: 'tableCell'}; 
var options = {'allowHtml': true, 'cssClassNames': cssClassNames, 'alternatingRowStyle': true}; 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Username',{style: 'background-color:red;'}); 
     data.addColumn('number', 'Won'); 
     data.addColumn('number', 'Lost'); 
     data.addColumn('number', 'Win/Loss Ratio'); 
     data.addColumn('number', 'Goals For'); 
     data.addColumn('number', 'Goals Against'); 
     data.addColumn('number', 'Score'); 
     data.addRows([ 
      ['Mike', 22, 13, 0.63, 65, 30, 600], 
      ['Andy', 25, 10, 0.71, 60, 18, 630], 
      ['Steve', 5, 20, 0.20, 10, 50, 475], 
      ['Chris', 40, 10, 0.80, 120, 20, 670], 
      ['Jake', 15, 15, 0.50, 70, 50, 525], 
     ]); 
     var table = new google.visualization.Table(document.getElementById('table_div')); 
     table.draw(data, {showRowNumber: true}); 
     } 
    </script> 
    </head> 

    <body> 
    <div id='table_div'></div> 
    </body> 
</html>​ 

CSS:

#table_div table { 
    color: #000; 
    margin-top: 10px; 
} 

.headerRow { 
    color: #000; 
} 

的table_div让我编辑表作为一个整体,所以目前的CSS代码中有一个效果但是当我添加背景色时:#ff0000;例如,它没有效果。与.headerRow一样。背景取自https://ajax.googleapis.com/ajax/static/modules/gviz/1.0/table/table.css,不想被覆盖。

任何想法,为什么这可能是?

如果绝对必要,我会很乐意完全停用Google CSS,并且纯粹从我自己的CSS表单中删除它。

+0

如果有人愿意讨论这个请访问:http://www.enginehere.com/stream/291/applying-css-to-google-visualization-table/ 将张贴在这里经过了答案。 – PauloCot

+0

使用DOM检查器(如Chrome或Firefox的),您可能会看到这些类正在适当地应用于行。如果您没有看到CSS效果,那么标题单元格和表格单元格的默认CSS类别可能会覆盖您的行CSS,因此您应该将CSS类别也分配给“headerCell”和“tableCell”。 – asgallant

+0

是的,这正是发生了什么事情。我创建的CSS效果在那里,但被超越(通过CSS代码行)。例如,当我输入背景颜色:#000;在表头部分中,它没有任何作用,并且被默认的Google CSS覆盖,这是一些复杂的渐变背景,每个浏览器都有一个部分!你如何将CSS类分配给headerCell和tableCell? – PauloCot

回答

0

想快速了解https://developers.google.com/chart/interactive/docs/gallery/table以获得更多信息,但您应该能够在head标签中自己的样式表中链接,然后引用JS中的类。我不能确定的唯一的事情是你是否可以创建与WordPress自定义的CSS文件,但是这将是总体思路:

HTML:

<link href="css/myCustomCss.css" rel="stylesheet"> 

的Javascript:

var cssClassNames = {headerRow: 'myAwesomeClass'}; 

CSS :

.myAwesomeClass { 
    font-size: 24px; 
} 
+0

它仍然读取默认的谷歌CSS提前。反正有禁用这个吗?或者至少可以使标题/表格行背景颜色变为可变的部分? – PauloCot

+0

我正在查看您发布的代码,并且没有引用您正在引用的外部(自定义)CSS文件。 – lux

+0

您可以通过ui更改CSS规则:cssClass ... [Google Chart](https://developers.google.com/chart/interactive/docs/gallery/controls#categoryfilter)。第二种选择是检查元素,如果你确实需要重写一些规则,你总是可以设置!重要的......但不会推荐它。大声笑。 – maverick

0

我也是新的谷歌图表,但已探索如此多的选项,我对如何设置表格风格有非常好的理解。

请参阅此链接正确谷歌例如: https://developers.google.com/chart/interactive/docs/examples?hl=fr

最终,你要做的就是指定一个类名到表行。你可以分配任何你想要的CSS代码。还有一种方法可以使用内联CSS,但我不推荐它。

内嵌样式如下

​​

您还可以添加您的格式,或其他任何东西。

如果您需要进一步澄清,请不要犹豫,回复我的线程。

2

一旦创建了CSS,我发现这是关键,得到它的工作:

var cssClasses = {headerRow: 'tblHeaderClass',hoverTableRow: 'tblHighlightClass'}; 
 
var options = {showRowNumber: false, allowHTML: true, 'cssClassNames':cssClasses}; 
 

 
table.draw(data,options);

力指令cssClassNames到字符串“蜱”,一定要使用您声明的对象来定义用于暴露表格元素名称的CSS类。