Подтвердить что ты не робот

Переполнение: прокрутки; в <td>

Почему свойство CSS overflow:scroll; не работает в <td>, а overflow:hidden; работает хорошо?

<table border="1" style="table-layout:fixed; width:100px">
  <tr>
    <td style="overflow:scroll; width:50px;">10000000000000000000000000000000000</td>
    <td>200</td>
    <td>300</td>
  </tr>
</table>

Из спецификаций CSS 1, 2 я не понимаю, почему.

4b9b3361

Ответ 1

Я получил что-то отсюда!

Andrew Fedoniouk писал (а):

На самом деле это мой вопрос:    "Одна из технических причин заключается в том, что свойство переполнения не распространяется на   таблицы". - Почему? В чем причина?

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

Да, вот почему я спрашиваю. Похоже, нет никаких формальных причин   почему или не следует прокручивать, но кажется   Поставщики UA достигли молчаливого соглашения в этой области. Точно так же   вопрос.

Спектр соглашается с вами с уважением к элементам. Ячейки таблицы должен уважать переполнение, хотя Mozilla, по крайней мере, похоже, не делает так. Я не могу ответить на ваш вопрос в этот случай, хотя я все равно догадайтесь, что ответ по-прежнему привязан к унаследованный рендеринг.

главный поток здесь.

Ответ 2

Вы должны обернуть его в div, который будет работать:

<table border="1" style="table-layout:fixed; width:500px">
  <tr>
    <td style="width:100px;"><div style="overflow:scroll; width:100%">10000000000000000000000000000000000</div></td>
    <td>200</td>
    <td>300</td>
  </tr>
</table>

Ответ 3

Сначала укажите желаемую высоту в td, а затем примените свойство "float: left" к соответствующему "td", в котором вы хотите отобразить полосу прокрутки.