Применение CSS к таблице визуализации Google

Я создал таблицу в Google Visualization, которая использует следующий код:

<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, хотя я не могу понять, как это сделать. Я прочитал Параметры конфигурации, но, будучи относительным новичком в кодировании, это не помогло и нуждается в четком объяснении шаг за шагом.

В частности, что я добавлю к приведенному выше коду, чтобы указать диаграмме использовать мой пользовательский 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 оказывает влияние, но когда я добавляю background-color: #ff0000; например, это не имеет никакого эффекта. То же самое с.headerRow . Фон берется из https://ajax.googleapis.com/ajax/static/modules/gviz/1.0/table/table.css и не хочет быть переопределенным.

Есть идеи, почему это может быть?

Если бы это было абсолютно необходимо, я был бы рад полностью отключить Google CSS и сделать это исключительно из своего собственного листа CSS.

4 ответа

После того, как вы создали CSS, я обнаружил, что это ключ к тому, чтобы заставить его работать:

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

table.draw(data,options);

вынудите директиву cssClassNames к строке с "галочками" и обязательно используйте объявленный вами объект, чтобы определить классы CSS, которые будут использоваться для имен элементов таблицы.

Вы пробовали! Важные в конце вашего свойства CSS?

Пример CSS:

.headerRow {
    color: #000!important;
}

Свойство! Важный всегда будет применяться независимо от того, где это правило появляется в CSS.

Я также новичок в Google Charts, но изучил так много вариантов, что у меня есть довольно хорошее понимание того, как стилизовать ваш стол.

См. Эту ссылку для правильного примера Google: https://developers.google.com/chart/interactive/docs/examples?hl=fr

В конечном итоге вы назначаете имя класса строке таблицы. После вы можете назначить любой код CSS, который вы хотите. Есть альтернатива, где вы можете использовать встроенный CSS, но я не рекомендую его.

Встроенный стиль выглядит следующим образом

[{v: 'cell string', p: {'style': 'font-weight: bold;'}}],

Вы также можете добавить свое форматирование или что-нибудь еще.

Если вам нужны дальнейшие разъяснения, не стесняйтесь отвечать в моей теме.

Пройдите быстрый пик на https://developers.google.com/chart/interactive/docs/gallery/table для получения дополнительной информации, но вы сможете ссылаться в своей собственной таблице стилей в теге head, а затем ссылаться на класс в JS. Единственное, в чем я не уверен, так это в том, можете ли вы создавать собственные CSS-файлы с помощью Wordpress, но это была бы общая идея:

HTML:

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

Javascript:

var cssClassNames = {headerRow: 'myAwesomeClass'};

CSS:

.myAwesomeClass {
   font-size: 24px;
}
Другие вопросы по тегам