3

私は新しいプロジェクトを開始しており、<td>以前にセル内のコンテンツを垂直方向に配置したことがあるため、このエラーは少し予期しないものでした. また、私が行った調査 (以前に行った調査も) では、期待する情報が得られます (vertical-alignブロック要素、 applydisplay: table-cell;などには適用できません)。でも:

シンプルなhtmlドキュメントに次の表があります。

<table id="headingTable">
    <tr>
        <td id="dateHolder">2013-07-24 15:03:18</td>
        <td><h2>City of Okmulgee Authorized Leave Request</h2></td>
        <td><button type="button" class="printBtn">Print Form</button></td>
    </tr>
</table>

この適用可能な CSS を使用すると、次のようになります。

table#headingTable
{
    width: 100%;
}

td
{
    vertical-align: middle;
}

h2
{
    font-family: Tahoma, Geneva, sans-serif;
    text-align: center;
}

.printBtn
{
    white-space: nowrap;
    font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
    font-size: 1em;
    border-width: 3px;
    border-color: #959595;
    cursor: pointer;
}

#dateHolder
{
    float: left;
}

<td id="dateHolder">セルは、その行の次の 2 つのテーブル セルに合わせて中央に日付と時刻を表示する必要がありますが、ここでは表示されていないことがわかります。

ここに画像の説明を入力

display: table-cell;この質問は私の下にあると思いたいのですが、それがインライン要素、または少なくとも を持つ要素である限り、特にテーブルセルである場合はそう信じさせられたため、そうではないようです(<td>要素) の場合、CSS で指定されているように vertical-align を適用する必要があります。

何かを機能させることができると確信していますが (ポジショニング、行の高さの調整、パディングなどを使用して)、設定した現在のルールでは機能しない理由を理解できないようです。私の教育のために答えを求めます。

私が試したこと

<span>要素内で使用し<td id="dateHolder">、テキスト ノードだけでなく、CSS でそれをターゲットにします。

行内pxのすべての<td>要素に高さ ( by ) を設定します。<tr>

<td>行内のすべての要素の行の高さを調整し<tr>ます。

あなたが知りたいかもしれないこと:

私は絶対にインライン CSS を持っていません。すべての CSS は同じ外部ドキュメントにあります。

表示する必要があると思われる場合は、ここに CSS ファイル全体を示します (このサイトはまだ非常に新しいため、まだそれほど多くはありません)。

body
{
    width: 100%;
    margin: auto;
    background-color: #464646;
}

div#mainWrapper
{
    background-color: #dfdfdf;
    width: 900px;
    border-style: ridge;
    border-width: 5px;
    border-color: #808080;
    margin: auto;
    padding: 10px 20px 0px;
    margin-top: 8px;
    text-align: center;
    padding-bottom: 20px;
}

table#headingTable
{
    width: 100%;
}

td
{
    vertical-align: middle;
}

h2
{
    font-family: Tahoma, Geneva, sans-serif;
    text-align: center;
}

table#mainTable
{
    width: 95%;
    margin: auto;
    margin-top: 40px;
    border-collapse: collapse;
    border: 2px solid #000;
}

td.leaveSection
{
    width: 50%;
    margin: auto;
    white-space: nowrap;
}

.printBtn
{
    white-space: nowrap;
    font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
    font-size: 1em;
    border-width: 3px;
    border-color: #959595;
    cursor: pointer;
}

#dateHolder
{
    float: left;
}

div.bigLblWrapper
{
    position: relative;
    left: -50px;
    display: inline-block;
    text-align: right;
    width: 80%;
}

label.bigLbl
{
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 15px;
    font-weight: bold;
}

input.leaveTypeRadio
{
    position: relative;
    left: -35px;
}

input[readonly]
{
    background-color: #c6ebff;
}

最後に、私はこれを行う方法ほど解決策に関心がないことを強調したいと思います (繰り返しますが、何かを機能させることができると確信しています)。設定したルールに基づいて、必要なスタイリングの変更を確立します。

4

1 に答える 1