VisualForce Datatable:CellPadding属性のレンダリングを停止する方法はありますか?
-
28-09-2019 - |
質問
Visualforceでは、Anを使用しています <apex:dataTable>
次のようなコンポーネント:
<apex:dataTable value="{!Qualifications}" var="qual" styleClass="cv_table" >
<!-- etc... -->
...そして、クラス名を介してテーブルをスタイリングするためにCSSを使用しています。問題は、VisualForceがこのようにHTMLをレンダリングすることです。
<table class="cv_table" id="j_id0:j_id26" border="0" cellpadding="0" cellspacing="0">
<!-- etc... -->
クラス属性は私が望んでいた通りにありますが、CSSを妨害するCellPaddingとCellspacingも指定されています。
VisualforceがCellPaddingとCellspacing属性のレンダリングを停止する方法はありますか <apex:dataTable>
?
解決 4
放棄しているように見えます <apex:dataTable>
タグとより低いFIを使用します <apex:repeat>
タグがこれを行う唯一の方法かもしれません。
他のヒント
上記で言及して、属性を削除してみましたか? IDを指定します
<apex:dataTable id="myTable" value="{!Qualifications}"...
それから
<script type="text/javascript">
document.getElementById("myTable").removeAttribute("cellpadding");
document.getElementById("myTable").removeAttribute("cellspacing")
</script>
これらのためにあなた自身の価値を提供するのはどうですか(CSSと同じ)?醜いですが、うまくいくでしょう。
それ以外は、javaScriptでクラスを削除 /再申請する属性?
Salesforce CSSの除去さえも考えていません(<apex:page ... showHeader="false">
)このタスクを達成します。
Visualforceでこれらの属性を抑制できるかどうかはわかりません。
しかし、あなたが本当に尋ねている質問が、これらの属性が私の全体的なデザインに影響を与えないようにしているのかということである場合、CSSが役立つと思います。
に相当するCSS cellpadding
「パディング」であり、CSSに相当します cellspacing
「ボーダー間隔」です。後者は、私の知る限り、タイプTDの要素でのみ機能します。
.cv_table TD {
border-spacing: 5px;
padding: 5px;
}