いつも忘れるのでメモっときます。
idで指定(px指定)
WordPressの場合はidを付けるのはできませんでしたが、idをつけれると一番簡単に指定できます。 テーブルにidを指定して設定する場合で以下記述しています。
- 表の幅はpx指定
- 各カラムもpx指定でcenter指定
- 一番左のカラム(first-child)だけ左詰めで上書き
#table_asset { width: 560px; border-collapse: collapse; table-layout: fixed; /* ← これを必要 */ } #table_asset th, #table_asset td { width: 120px; text-align: center; } #table_asset th:first-child, #table_asset td:first-child { width: 200px; text-align: left; }
WordPressの場合(%指定)
WordPressの場合、『高度な設定』でクラス名を設定すると、figureのクラス名になる。 以下はWordpressを使っている場合。 WordPressの場合は、すでに色々スタイルが設定されており、それらの設定より優先順位を上げて効果をだすため、.ai_agentというクラス名だけでなくElement名のfigureも付けて、その後にtableと付けている。 これで2点プラスとなり、優先順位が上がり採用されやすくなる。 しかし各列ごとに設定が面倒臭い。
table, figure.ai_agent table{ width: 100%; table-layout: auto; border-collapse: collapse; } figure.ai_agent table th, figure.ai_agent table td { border: 2px solid #FFFF; padding: 8px; } figure.ai_agent table tr:nth-of-type(2n+1) { background-color: #f2f0f0 !important; } /* 1列目*/ figure.ai_agent table th:nth-child(1), figure.ai_agent table td:nth-child(1) { width: 10%; text-align:center; } /* 2列目*/ figure.ai_agent table th:nth-child(2), figure.ai_agent table td:nth-child(2) { width: 20%; text-align:center; } /* 3列目*/ figure.ai_agent table th:nth-child(3), figure.ai_agent table td:nth-child(3) { width: 10%; text-align:center; } /* 4列目*/ figure.ai_agent table th:nth-child(4), figure.ai_agent table td:nth-child(4) { width: 60%; text-align:center; }
Javascriptで設定(%指定)
上記のような設定を毎回するのは面倒臭いので、Javascriptで作れないかChatGPTに聞いたら以下のような答えがかえってきました。 実際使ってみたら使えて、こっちのほうが簡単でした。
function applyTableStyles(columnWidths, textAlignments, figureClass) { // クラス名が指定されていない場合はエラー回避 if (!figureClass) { console.error("Figureタグのクラス名を指定してください。"); return; } // 列の幅とテキスト配置のデータを配列化 let widths = columnWidths.split("|"); let aligns = textAlignments.split("|"); // CSS文字列の構築 let css = ` figure.${figureClass} table { width: 100%; table-layout: auto; border-collapse: collapse; } figure.${figureClass} table th, figure.${figureClass} table td { border: 2px solid #FFFF; padding: 8px; } figure.${figureClass} table tr:nth-of-type(2n+1) { background-color: #f2f0f0 !important; } `; // 各列の設定を適用 for (let i = 0; i < widths.length; i++) { if (widths[i]) { css += ` figure.${figureClass} table th:nth-child(${i + 1}), figure.${figureClass} table td:nth-child(${i + 1}) { width: ${widths[i]}; text-align: ${aligns[i] || "center"}; } `; } } // スタイル要素を作成・適用 let styleTag = document.createElement("style"); styleTag.innerHTML = css; document.head.appendChild(styleTag); } // 使用例 applyTableStyles("10%|20%|||", "center|left||", "ai_agent");
ヘッダー行をBoldにする場合
thがある場合
figure.investment_type_table table th{ font-weight:bold; }
thがない場合
WordPressでtableを作成するとthがありませんでした。 なので以下で可能です。
figure.investment_type_table table tr:first-child td{ font-weight:bold; }
行を指定
/* 2行目*/ figure.investment_type_table table tr:nth-child(2) td{ font-weight:bold; } /* 4行目*/ figure.investment_type_table table tr:nth-child(4) td{ font-weight:bold; }
セルを指定
figure.ai_agent table tr:nth-child(4) td:nth-child(2) { color: blue; background-color: #f0f8ff; /* セルが選択されたことを分かりやすくするために背景色も追加 */ }
nth-child(1)
first-childと同様nth-child(1)でも使用できます。
scssやAngularやJapaScriptではnth-child(n)のループ処理でnを変化させて使うことが出来るのと、同じ記法で書いたほうがわかりやすいので、私はnth-child(1)のほうが好きです。
コメント