2017-01-11 8 views
0

タイトルで私の質問を徹底的に説明するのは難しかったので、私はその説明を明確にしようとします。 <div>を使ってテーブルを構築し、意味<table>を意図的に避けてCSSのプロパティdisplay: tableなどを適用しています。 すべて問題なく動作していますが、現在はposition: fixedを使用して固定ヘッダーを達成しようとしています。結果は次のとおりです。幅を変更して位置を固定しないようにする:fixed

enter image description here

Obliviouslyセルの残りの部分に適用されるdisplay: table-cellこのdesideratedない振る舞いを引き起こしています。セルは新しいコンテンツに適合し、CSSファイルに適用されたルールmin-width: 100pxに従うだけで自動リサイズされます。ここで

作業ペンへのリンク:https://codepen.io/l_core/pen/ZLQEjq

ヘッダと、純粋なCSSのアプローチと「体」は、細胞間の完全な位置合わせを達成するための方法はありますか?私はJSで幅を再計算しようとすることができましたが、これを実現するためのエレガントな方法があると確信しています。コードの下

HTML

<!-- Row Container --> 
    <div class="row-container" id="row1"> 

     <!-- Header cell container --> 
     <div class="cell cell-header" id="cell1"> 

     <!-- Cell content container --> 
     <div class="cell-content"> 
      <span>Cell</span> 
     </div> 
     </div> 

     <div class="cell cell-header" id="cell2"> 
     <div class="cell-content"> 
      <span>Cell</span> 
     </div> 
     </div> 

     <div class="cell cell-header" id="cell3"> 
     <div class="cell-content"> 
      <span>Cell</span> 
     </div> 
     </div> 

     <div class="cell cell-header" id="cell4"> 
     <div class="cell-content"> 
      <span>Cell</span> 
     </div> 
     </div> 

     <div class="cell cell-header" id="cell5"> 
     <div class="cell-content"> 
      <span>Cell</span> 
     </div> 
    </div> 

CSS

#row1 { 
    position: fixed; 
} 

私は完全なコードについて先に掲載のペンに見てみてください。私は彼の全身にそれを投稿することは良い考えであるか分からない。

+0

を使用すると、 ''

HTMLを使用していないのはなぜ。これはそのためのものです。 – Andrew

+0

あなたの答えは@Andrewに感謝します。私は意図的に意味のある '

'アプローチを避けています。 "個人的なプロジェクト"としてそれを取る – Lc0rE

答えて

1

固定要素は、通常のhtmlフローから外れています。したがって、あなたのテーブルヘッダーはもうテーブルの一部ではありません。 したがって、それらは独立して動作します。

min-widthではなく、すべてのセルに対して定数を設定することができます(JSを使用して動的に計算されます)。

+0

あなたの答えをありがとう。私は一定の幅をCSS規則で設定しないようにしたい。あなたが "動的に計算"について話すとき、あなたはJS実装を指していますか? – Lc0rE

+0

はい。最大幅を決定するには、セルの幅を取得する必要があります。 –

1

Flexをメインコンテナとして使用していると思います。 幅の問題を解決します。

  1. フレックスコンテナとしてメインコンテナを作成します。
  2. メインコンテナの内側で、フレックス方向を「列」とします。

とFlexの詳細、あなたが検索できます。

https://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

お返事ありがとうございます@Abhishek!私は現在、セルの幅を設定しているカスタムJSコードを使って解決しています。しかし、私はすぐにあなたのソリューションを試して、それが動作しているかどうかを確認します! – Lc0rE

関連する問題