ホームページ  >  記事  >  ウェブフロントエンド  >  CSS での table-cell 属性の使用方法について

CSS での table-cell 属性の使用方法について

不言
不言オリジナル
2018-06-20 14:14:132264ブラウズ

table-cell 属性は、行内で同じ高さの要素を配置する場合に非常に効果的です。CSS での table-cell 属性の使用方法についてのチュートリアルの例を見てみましょう。それ

まず、テーブルについて勉強しましょう。なぜ当時使用されていたテーブル レイアウトはそれほど素晴らしいのでしょうか?彼女の特徴は何ですか?テーブルの互換性、SEO、読み込み、およびこの記事に関係のないその他のコンテンツは無視して、属性だけを見てみましょう。すると、次の 2 つの特徴があります:
1. ピアと同じ高さ。
2.幅の自動調整。
では、テーブルセルにはこの特性があるのでしょうか?答えは「はい」です。なぜですか? CSS には「匿名のテーブル要素を作成する」という興味深いルールがあります。 table-cell を例にとります。つまり、要素が display:table-cell に設定されているとき、その親ノードが display:table-row ではなく、grandpa ノードが display:table ではない場合、次は次のようになります。奇跡を目撃する時が来ました。この息子は父親と祖父を出産しました (ブラウザは自動的に 2 つの匿名のボックス オブジェクトを作成します)。これは本当に信じられないほど起こりました。そうですか、拍手がないのが一番すごいです。 ^_^
それでは、この驚くべきことを理解するために、いくつかの状況を見てみましょう。私は最初に次のようにコードを書きました:

<style type="text/css">   
    p{padding:10px 0;}   
    .classtd,   
    td{height:34px; padding:10px; margin:10px; border:1px solid #ccc; vertical-align:middle;}   
    .classtd{display:table-cell; border-color:#cc0;}   
</style>   
<p class="classtd">tom</p>   
<p class="classtd">jack</p>   
<p>普通 p</p>   
<p class="classtd">angel</p>   
<p>======= 上面是p 下面是table ========</p>   
<table cellpadding="0" cellspacing="0">   
    <tr>   
        <td class="dtc">tom</td>   
        <td class="dtc">jack</td>   
    </tr>   
</table>   
<table style="margin-top:10px;" cellpadding="0" cellspacing="0">   
    <tr>   
        <td>angel</td>   
    </tr>   
</table>

次に、ブラウザーが次のように表示されると予測しました:

201675120123945.jpg (337×330)

さて、最初に効果を確認したことは認めますが、その後、結論を導き出すことができました: Tom and Jackセックスをし、父親を出産しました (ブラウザは、隣接する display:table-cell 要素をラップするテーブルを作成します)。パフォーマンスは最初のテーブルと同じです。エンジェルは自分の父親と祖父を出産しましたが、彼らのパフォーマンスは2番目のテーブルと同じでした。
このような状況なので、table-cell を理解したい場合は、偽装されたテーブルの td を理解する必要があります。ここで、前述の 2 つの機能、つまり高さを均等にする機能と幅を自動調整する機能に戻ります。
これが事実であるため、この製品を使用して高さの等しいレイアウトを作成できます:

<style type="text/css">   
    .classtd{padding:10px; margin:10px; border:1px solid #ccc; vertical-align: top;}   
    .classtd{display:table-cell; border-color:#cc0;}   
</style>   
<p class="classtd">   
    <p>大人。<br />其实我觉得大家别问元芳,元芳不是神人,<br />也不会武功,也许还是个智障,<br />我就不信我在这里黑元芳<br />他会突然飞檐走壁来到我身后<br />把我的头按在键盘上yu7jhklhgjkfgt;/.";. yujh bnujm798u7jrtb5 tq1qwsewrt5 
    </p> 
</p> 
<p class="classtd"><p>我和左边等高</p></p>

201675120200625.jpg (730×179)自動列幅調整機能を使用して、左固定および右適応型レイアウトを作成できます:

<style type="text/css">   
    .left{float:left; width:260px; padding:10px; margin-right:10px; border:1px solid #ccc;}   
    .classtd{ display: table-cell; width:3000px; padding:10px; border:1px solid #ccc;}   
</style>   
<p class="left">我是左边栏目</p>   
<p class="classtd">   
    我是自适应的右边   
</p>

この製品をvertical-align: middleと組み合わせると、可変サイズの要素(および垂直方向の中央揃えの複数行テキスト)のレイアウトを実行できます。

<style type="text/css">   
    .classtd{ display: table-cell; padding:10px;margin:10px;border:1px solid #ccc;}   
    .classtd p{ display: inline-block; vertical-align: middle;}   
</style>   
<p class="classtd">   
    <p style="padding:40px 80px 10px 10px; background: #639146; color:#fff;">p+css</p>   
    <p style="padding:60px 80px 10px 10px; background: #2B82EE; color:#fff;">javascript</p>   
    <p style="padding:70px 80px 10px 10px; background: #F57900; color:#fff;">HTML5</p>   
    <p style="padding:80px 80px 10px 10px; background: #BC1D49; color:#fff;">CSS3</p>   
</p>

201675120227518.jpg (620×142)

自動列幅調整の機能を使用して、次のことができます。左固定右適応レイアウトを作成します:

<style type="text/css">   
    .left{float:left; width:260px; padding:10px; margin-right:10px; border:1px solid #ccc;}   
    .classtd{ display: table-cell; width:3000px; padding:10px; border:1px solid #ccc;}   
</style>   
<p class="left">我是左边栏目</p>   
<p class="classtd">   
    我是自适应的右边   
</p>

201675120251391.jpg (653×51)

このレイアウトの幅: 3000px に混乱する子供もいるかもしれません。このレイアウトの原理は次のとおりです:
display: table-cell 要素によって生成された匿名テーブルは、デフォルトで table-layout: auto になります。幅はセルの内容に基づいて自動的に調整されます。 したがって、width:3000pxを設定する目的は、できるだけ幅を広くすることです。このようにして、適応効果を達成することができる。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

CSS3のAnimation属性の使用分析について

CSS3リージョンモジュールリージョンの関連コード

以上がCSS での table-cell 属性の使用方法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。