2016-11-21 5 views
2

スパンの要素を持つテーブルが番目のにあります。 私はスパン幅は番目に一致するようにしたいが、実際には、行全体を満たす:(幅の内側に

私のコード:。

for (var i = 0; i < testInfoFieldsNames.length; i++) { 
     title = testInfoFieldsNames[i].toLowerCase(); 

     th = $('<th></th>'); 
     span = $('<span></span>').addClass('cell-container').text(title); 
     th.append(span); 
    } 

    tableHeader.append(th); 

CSS:私は埋めるためにスパン幅を設定するにはどうすればよい

.cell-container { 
    position: absolute; 
    display: block; 
    top: 5px; 
    left: 0; 
    width: 100%; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
} 

thのみ?

+8

あなたのスパンが怪しい内部 'div'ザッツ' div' –

+1

のように見えます変数 'span'、あなたはそれが正しいと確信していますか? –

+0

@RoryMcCrossanあなたの美しさ! – ScanQR

答えて

0

次のように設定し、私はあなたのようなスタイル番目与えるべきだと思う:

th{ 
    position:relative; 
} 
+0

ありがとうございます!これは本当に問題を解決しました!理由を説明するのを知っていますか? –

+0

エレメントにスペースを残さないでください。代わりに、それが最も近い位置にある祖先に対して指定された位置にあればそれを配置します。絶対配置されたボックスは余白を持つことができ、他の余白と一緒に折り畳まれることはありません。 – JKong

+0

@rkfred [https://developer.mozilla.org/en-US/docs/Web/CSS/position]このウェブページで回答を見つけることができます – JKong

0

これを試してください。これはあなたのために働くと思います。

link

for (var i = 0; i < testInfoFieldsNames.length; i++) { 
     title = testInfoFieldsNames[i].toLowerCase(); 

     th = $('<th><span class="cell-container">'+title+'</span></th>'); 
    } 

    tableHeader.append(th); 

この例をチェックしてくださいCSS

span.cell-container { 
    display: block; 
    top: 5px; 
    left: 0; 
    width: 100%; 
    text-overflow: ellipsis; 
    white-space: nowrap; 
    overflow: hidden; 
} 
+0

ありがとうございます。上記のコードと同じように動作します。実際には、 'span'で 'th'を追加しています。しかし、スパンはまだセルの代わりに行全体を埋める.. –

+0

@rkfred CSSの位置タグに問題があります。それを削除するか、 "position:relative;"で置き換えてください。 –

+1

@rkfredその作業はCSSを編集してみてください。詳細は添付のリンクをご覧ください。 –

-1

タグ 'スパン' は、インライン要素です。幅と高さはありません。 あなたは使用する必要があります「のdiv」または財産

display:block; 
+0

ありがとう!私は実際に私のCSSでこのプロパティを使用しますが、スパン幅はまだ行全体を塗りつぶします。 –

関連する問題