1

td私はインラインスタイルをwidthパーセンテージで設定したaaを持っています。css は変更できますが、html は変更できません。

tdコンテンツに必要な幅だけを占めるようにするにはどうすればよいですか?

次の CSS は機能しません。

td#my 
{
    width: auto !important;
}
4

4 に答える 4

1

テーブルセルはデフォルトで自動幅ですが、列の中で最も幅の広いセルの最小幅を占めます。だからこれを例に取って

td1|td2|td3|

1  |2  |3  |

これらのセルはすべて、最初の行に基づいて同じ幅になります。これを強制することを私が考えることができる方法はありません:

td1|td2|td3|

1|2|3|

とにかくHTMLを変更せずにではなく、これを実行しようとしているように聞こえます。

于 2012-12-13T15:47:31.307 に答える
1

CSSの特異性のルールを尊重する必要があります。(そうすることで、!importantの使用を回避できます)

http://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

インラインスタイルの重みは1000で、IDは100、要素は1です。したがって、cssルールを適切に使用するには、これに細心の注意を払う必要があります。上にリンクされた記事は、私がこれまでに達成したいと思っていたよりも、特異性を説明する上ではるかに優れた仕事をしています。それを読んで、それを研究して、それを愛してください。

これがあなたの質問に直接答えない場合:それは有益な記事であり、実際にはあなたが別のルートを取ることを可能にすることによってあなたの問題を解決するかもしれません。

于 2012-12-13T15:34:19.357 に答える
0

テーブルの他のセルについても css を変更する必要がある場合があります。以下を掘り下げて、セル幅の計算方法を確認してください

出典: w3.org/TR/CSS21/tables.html#width-layout

列幅は次のように決定されます。

  1. 各セルのコンテンツの最小幅 (MCW) を計算します。書式設定されたコンテンツは、任意の数の行にまたがる場合がありますが、セル ボックスからはみ出さない場合があります。セルの指定された「幅」(W) が MCW より大きい場合、W はセルの最小幅です。「auto」の値は、MCW が最小セル幅であることを意味します。引用符

    また、各セルの「最大」セル幅を計算します。明示的な改行が発生する場所以外では、行を改行せずにコンテンツをフォーマットします。

  2. 列ごとに、その列のみにまたがるセルから列の最大幅と最小幅を決定します。最小値は、最大の最小セル幅 (または列の「幅」のいずれか大きい方) を持つセルに必要な値です。最大値は、最大セル幅 (または列の「幅」のいずれか大きい方) を持つセルに必要な値です。

  3. 複数の列にまたがるセルごとに、列の最小幅を増やして、合計で少なくともセルと同じ幅になるようにします。最大幅についても同じことを行います。可能であれば、スパンされたすべての列をほぼ同じ量だけ広げます。

  4. 「auto」以外の「幅」を持つ列グループ要素ごとに、それがまたがる列の最小幅を増やして、少なくとも列グループの「幅」と同じ幅になるようにします。

これにより、各列の最大幅と最小幅が決まります。

于 2012-12-13T15:42:54.297 に答える
-1

試す:

td#my {width:inherit !important;}

また

td#my {width:0% !important;}

于 2012-12-13T15:33:25.040 に答える