Как я могу контролировать ширину ячейки заголовка таблицы, которая содержит повернутый текст? - PullRequest
13 голосов
/ 27 декабря 2010

Я играл с этим в течение часа или около того, прежде чем решил, что мне не по себе, когда дело доходит до таких вещей, как CSS.В основном я пытаюсь иметь ячейку заголовка с повернутым текстом на моей странице.Поворот казался достаточно простым - благодаря сообществу stackoverflow! - но ширина столбца не работает для меня.У кого-нибудь есть какие-нибудь советы, как сделать колонку «Общее удовлетворение» узкой?

Цель для IE, хотя я бы хотел, чтобы она работала в больших браузерах.

Вы можете видетьнекоторые из моих пережитков - возиться с этим ... DIV в каждой ячейке TH, высота TR и т. д. Ничего из этого не требуется для того, чего я пытаюсь достичь.

Весь смысл поворотатекст должен был спасти горизонтальную недвижимость, и из того, что я вижу, этого не происходит.

Вот моя упрощенная попытка:

<style>
.rotate {
    padding: 0px 0px 0px 0px;
    margin: 0px;
}
.rotate div {
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);

    writing-mode: bt-rl;

    padding: 0px 0px 0px 0px;
    margin: 0px;
    text-align: left;
    vertical-align: top;
}
</style>

<table border=1>
    <thead>
        <tr style="line-height: 200px">
            <th><div>Facility</div></th>
            <th><div>Date</div></th>
            <th><div>Score</div></th>
            <th class="rotate"><div>Overall&nbsp;Satisfaction</div></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>Los Angeles</td>
            <td>11/12/2010</td>
            <td>3.5</td>
            <td>2.5</td>
        </tr>
        <tr>
            <td>San Diego</td>
            <td>11/17/2010</td>
            <td>10.0</td>
            <td>10.0</td>
        </tr>
    </tody>
</table>

Ответы [ 3 ]

10 голосов
/ 27 декабря 2010

Вам необходимо применить абсолютную позицию к div, чтобы он больше не занимал горизонтальное пространство (столбец автоматически подстраивается под ширину остальных ячеек).Затем текстовый отступ для изменения положения элемента в ячейке:

.rotate div {position: absolute;}

.rotate {

    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    writing-mode: bt-rl;
    text-indent: -3em;
    padding: 0px 0px 0px 0px;
    margin: 0px;
    text-align: left;
    vertical-align: top;
}

http://jsfiddle.net/p4EPd/

Редактировать: исправить то есть

.rotate div {
    -webkit-transform: rotate(-90deg) translate(0, 10px);
    -moz-transform: rotate(-90deg)  translate(0, 10px);
    writing-mode: bt-rl;
    padding: 0;
    margin: 0;
    height: 125px;
}

th.rotate {padding-top: 5px;}

http://jsfiddle.net/6Xjvm/

Вы можете подать заявку как с помощью условных комментариев .

0 голосов
/ 19 октября 2016

Это должен быть урок HTML TABLE, День 2, но это не так.

css свойство таблицы: "table-layout: fixed"

0 голосов
/ 22 января 2011

В декларации css уровня таблицы добавьте table-layout: fixed;Это гарантирует, что ширина столбцов таблиц остается точно такой же, как вы объявляете, независимо от того, какие изображения или текст размещены в каждой ячейке.

Кстати, вместо:

.rotate {
    padding: 0px 0px 0px 0px;
    margin: 0px;
}
.rotate div {
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);

    writing-mode: bt-rl;

    padding: 0px 0px 0px 0px;
    margin: 0px;
    text-align: left;
    vertical-align: top;
}

<th><div>Facility</div></th>

try:

.rotation {
    display:block;
    /* for firefox, safari, chrome, etc. */
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);/* For Opera*/
    -khtml-transform: rotate(-90deg);/* For Lunix*/
    /* for ie */
    filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
<th>Facility</th>

, что меньше кода и упрощенный подход и решает проблемы IE.

(извините за проблему с разметкой ответов выше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...