Мне нужно простое решение. Я знаю, что это похоже на некоторые другие вопросы, такие как:
- HTML-таблица с фиксированными заголовками и фиксированным столбцом?
- Как заблокировать первую строку и первый столбец таблицы при прокрутке, возможно, используя JavaScript и CSS?
Но мне нужно заморозить только один левый столбец, и я бы предпочел простое решение без сценариев.
html
css
html-table
agsamek
источник
источник
Ответы:
Если вам нужна таблица, в которой только столбцы прокручиваются горизонтально, вы можете
position: absolute
выбрать первый столбец (и указать его ширину явно), а затем обернуть всю таблицу вoverflow-x: scroll
блок. Не пытайтесь попробовать это в IE7, однако ...Соответствующие HTML и CSS:
скрипка
источник
text-overflow: ellipsis
для точного отображения.Это интересный плагин jQuery, который создает фиксированные заголовки и / или столбцы . Переключите фиксированный столбец на true на демо-странице, чтобы увидеть его в действии.
источник
Вы можете использовать
sticky
положение. Вот пример кода. Это решение HTML / CSS. Нет JS не требуется.Загрузочный код: https://www.bootply.com/g8pfBXOcY9
источник
В случае фиксированной ширины левой колонки лучшее решение предлагает Имон Нербонн .
В случае левой ширины столбца с переменной шириной лучшее решение, которое я нашел, состоит в том, чтобы создать две одинаковые таблицы и толкать их друг над другом. Демо: http://jsfiddle.net/xG5QH/6/ .
источник
seperate
под загрузкой, в противном случае границы не плавают вместе с клетками. После этого требуется очистка границы.visibility: collapse;
к столбцам, чтобы скрыть их от фиксированной таблицы (должен полюбить:not()
селектор css! ). я также использовал jQuery для.clone()
таблицы, как только он был сгенерирован php + MySQL + ajax, и вставил его в очищенный div ...FWIW, вот таблица с возможностью прокрутки с фиксированной головой и стороной.
http://codepen.io/ajkochanowicz/pen/KHdih
источник
Немного поздно, но я наткнулся на эту тему, когда пробовал решения для себя. Предполагая, что вы используете современные браузеры в настоящее время, я предложил решение, использующее CSS calc (), чтобы гарантировать соответствие ширины.
Надеюсь, это поможет кому-то!
источник
<br/>
в<th>
элементе?Стиль левой колонки с
position: fixed
. (Вы , вероятно хотите использоватьtop
иleft
стили , чтобы контролировать , где именно это происходит.)источник
position: fixed
и остается на месте, остальная часть содержимого работает нормально (предположительно с установленным левым полем, чтобы он не перекрывал левый столбец).Для большинства браузеров, выпущенных после 2017 года:
Вы можете использовать
position: sticky
. Смотрите https://caniuse.com/#feat=css-sticky .Нет необходимости в столбце фиксированной ширины.
Запустите фрагмент кода ниже, чтобы увидеть, как он работает.
источник
sticky
, поэтому нет необходимости в один болееposition: sticky
его поведение не меняется, поэтому его использование уже было показано.Я взял ответ Earmon Nerbonne и отредактировал его для работы с таблицами, которые занимают всю ширину.
http://jsfiddle.net/DYgD6/6/
Ширина фиксированного столбца все еще должна быть заданным значением.
источник
Если вы разрабатываете что-то более сложное и хотите, чтобы несколько столбцов были зафиксированы / закреплены слева, вам, вероятно, понадобится нечто подобное.
источник
Если вы находитесь в аду Webdevelopper и вам нужно, чтобы это работало для IE6, вот пример кода, который я использовал:
Это будет работать, вероятно, ТОЛЬКО для IE6, поэтому используйте условные комментарии для CSS.
источник
Не нужно добавлять плагин, CSS может сделать эту работу !!!
Идея состоит в том, чтобы сделать положение всех первых ячеек в каждом столбце абсолютным и сделать ширину фиксированной. Пример:
Это скрывает некоторые части некоторых столбцов под первым столбцом, поэтому добавьте пустой второй столбец (добавьте второй пустой тд) с шириной, равной ширине первого столбца.
Я тестировал, и это работает в Chrome и Firefox.
источник
Имон Нербонн, я изменил некоторые CSS в вашем коде, и теперь стало лучше (полоса прокрутки начинается с первого ряда)
http://jsfiddle.net/At8L8/
Я просто добавляю две строки:
источник
Вы можете просто сделать первый столбец
position: sticky; z-index: 9
. Это сделает столбец / строку придерживаться своей текущей позиции. Проверьте мой пример codepen здесь https://codepen.io/swastikmishra/pen/zYYdKBQПример HTML
источник
Опера глючила во всех предыдущих ответах, когда я проверял их на своем Mac. Если вы прокрутите таблицу, фиксированный столбец исчезнет после прохождения первого нефиксированного столбца. Я пошел дальше и написал код ниже. Он работает во всех браузерах, которые я установил локально. Я не знаю, как то есть, то есть.
Просто имейте в виду, что если вы намереваетесь пропустить строки в одной таблице, а не в другой, или изменить высоту строк, вам может потребоваться настроить этот код.
источник
Вот еще одна модификация самого популярного ответа, но с обработкой переменной длины текста в метках первого столбца: http://jsfiddle.net/ozx56n41/
По сути, я использую второй столбец для создания высоты строки, как уже упоминалось. Но моя скрипка на самом деле работает в отличие от большинства упомянутых выше.
HTML:
CSS:
источник
Для меня это был единственный, который работал отлично (спасибо Полу О'Брайену!): Https://codepen.io/paulobrien/pen/gWoVzN
Вот фрагмент:
источник
В качестве альтернативы, стиль tbody с заранее заданным размером (
height:20em
например, через) и использоватьoverflow-y:scroll;
Затем вы можете иметь огромный tbody, который будет прокручиваться независимо от остальной части страницы.
источник
источник
Это можно легко сделать с помощью таблиц данных. Люди, которые плохо знакомы с таблицами данных, обращаются к https://datatables.net/. Это плагин и предлагает множество функций. В приведенном коде заголовок исправлен, первые 3 столбца исправлены, а некоторые другие функции также там.
источник
Я не проверял каждый ответ на этот вопрос, но проанализировав большинство из них, я обнаружил, что дизайн терпит неудачу в случае многострочных данных в ячейках или голове. Я использовал Javascript, чтобы решить эту проблему. Я надеюсь, что кто-то найдет это полезным.
https://codepen.io/kushagrarora/pen/zeYaoY
Примечание: div "container" предназначен для демонстрации совместимости кода с мобильным представлением.
источник
Я только что сделал самый правый липкий столбец таблицы липким.
Я верю, что если вы это сделаете
{position: sticky; left: 0;}
, вы получите желаемый результат.источник
sticky
, не поддерживается IE.Если вы не хотите слишком сильно трогать вашу текущую таблицу, вы можете сделать поддельный закрепленный столбец перед таблицей.
В примере показан один из способов сделать это без JS
источник
В HTML5 вы можете использовать CSS
style.transform
.Тем не менее, я рекомендую вам «пролистывать страницы» отключить, если вы реализуете на Mac.
посмотрите на пример codePen
источник
Добавьте это в голову:
Javascript:
источник