Как создать контейнер с горизонтальной прокруткой и разной высотой дочерних элементов? ⇐ CSS
Как создать контейнер с горизонтальной прокруткой и разной высотой дочерних элементов?
У меня возникла сложная проблема с макетом CSS, и мне нужна помощь. Моя цель — создать заголовок в контейнере, который всегда следует за горизонтальной прокруткой, но следует за вертикальной прокруткой только тогда, когда вертикальная прокрутка присутствует.
В контейнере будет несколько документов разной высоты. Ключевое требование — контейнер не должен расширяться до высоты самого высокого документа, что усложняет задачу.
Первоначальный вид
После прокрутки влево
Особые требования:
[*]Заголовок всегда должен следовать за горизонтальной прокруткой. [*]Заголовок должен следовать за вертикальной прокруткой только тогда, когда в контейнере присутствует вертикальная прокрутка. [*]Контейнер должен сохранять свой размер и не расширяться до высоты самого высокого содержащегося элемента. [*]Обеспечить плавную прокрутку. [*]Обеспечить кроссбраузерную и кроссплатформенную совместимость с мобильными/настольными компьютерами.
Вопросы:
[*]Есть ли способ добиться этого с помощью CSS, возможно, с помощью расширенных свойств или методов? [*]Если необходимо решение на JavaScript, как его оптимизировать для плавной прокрутки и широкой совместимости?
Будем очень признательны за любые рекомендации или советы по этому поводу!
Вот что я изучил на данный момент:
[*]Я изучил свойство CSS contains, чтобы изолировать подраздел DOM, но это не совсем решило проблему. [*]Я попробовал решение на основе JavaScript, но оно привело к недостаточной плавности и проблемам кросс-браузерной совместимости (событие прокрутки/Intersection Observer).
Настройка => https://codepen.io/samuelclo/pen/poYorbv?editors=1100
const getScrollbarWidth = () => { // Создание невидимого контейнера const external = document.createElement("div"); external.style.visibility = "скрытый"; external.style.overflow = "прокрутка"; // принудительное появление полосы прокрутки // @ts-expect-error необходим для приложений WinJS external.style.msOverflowStyle = "полоса прокрутки"; document.body.appendChild(внешний); // Создаем внутренний элемент и помещаем его в контейнер const внутренний = document.createElement("div"); внешний.appendChild(внутренний); // Вычисление разницы между полной шириной контейнера и шириной дочернего элемента const ScrollbarWidth = external.offsetWidth - внутренний.offsetWidth; // Удаление временных элементов из DOM внешний.parentNode?.removeChild(внешний); вернуть ширину полосы прокрутки; }; document.documentElement.style.setProperty( "--scrollbar-width-js", getScrollbarWidth() + «px» ); :root { --common-width: 300 пикселей; --scrollbar-width: var(--scrollbar-width-js, 12px) } html, тело { маржа: 0; заполнение: 0; семейство шрифтов: system-ui, без засечек; } .карта { ширина: var (--common-width); радиус границы: 10 пикселей; отступ: 15 пикселей 25 пикселей; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.02), 0 0 0 1px rgba(27, 31, 35, 0.15); } заголовок { верх: 0; поле: 20 пикселей авто; } основной { дисплей: гибкий; переполнение-х: авто; тип прокрутки-привязки: x обязательно; /* Используйте для определения высоты, потому что если все дочерние элементы исключены из DOM, высоты не будет min-height: 100vh; */ минимальная высота: 100vh; } .l-include-gutter { гибкое сжатие: 0; ширина: 100%; прокрутка-привязка-выравнивание: по центру; /* Совсем недавно */ /* https://caniuse.com/?search=contain */ содержать: размер; /* Добавляем ширину полосы прокрутки */ полоса прокрутки: стабильная; переполнение-y: прокрутка; /* Поскольку дочерний элемент имеет ширину более 100% */ переполнение-х: клип; } .l-статья { ширина: Calc(100% + var(--ширина полосы прокрутки)); дисплей: гибкий; гибкое направление: столбец; выровнять-элементы: по центру; } /* Для сафари */ /* https://caniuse.com/mdn-css_properties_scrollbar-gutter */ @supports not (полоса прокрутки: стабильно) { .l-статья { переполнение-y: прокрутка; } Изучение трансформации: искусственный интеллект и изменение климата Погрузитесь в две разные, но взаимосвязанные области человеческих инноваций. и глобальная озабоченность. Сначала совершите путешествие по эволюции искусственных Интеллект (ИИ) в его развитии с момента его зарождения в середине 20-го века. к преобразующей технологии, которой она является сегодня. Узнайте, как ИИ произвели революцию в промышленности, здравоохранении и принятии решений, а также создавая такие проблемы, как перемещение рабочих мест и предвзятость.
Нажмите на меня! Изменение климата Изменение климата – одна из самых актуальных проблем, стоящих перед человечеством сегодня. Это относится к долгосрочным изменениям глобальной температуры и погодные условия, в первую очередь обусловленные деятельностью человека, такой как сжигание ископаемого топлива, вырубка лесов и промышленные процессы. Нажмите на меня! Эволюция искусственного интеллекта Искусственный интеллект (ИИ) прошел долгий путь с момента своего появления. зарождение в середине 20 века. Термин «искусственный интеллект» был впервые предложен Джоном Маккарти в 1956 году во время Семинар Дартмутского колледжа. Ранние исследования ИИ были сосредоточены на символических системы рассуждений и правил, но прогресс был медленным из-за ограниченная вычислительная мощность. В 21 веке искусственный интеллект вступил в новую эру благодаря достижениям в машинном обучении и нейронных сетях. Глубокое обучение, подмножество машинного обучения, позволило компьютерам обрабатывать обрабатывать огромные объемы данных и выполнять сложные задачи. Этот прорыв проложило путь к разработке систем искусственного интеллекта, которые могли бы понимать естественный язык, распознавать изображения и даже побеждать людей чемпионы в таких играх, как шахматы и го. Применение ИИ в различных отраслях ИИ произвел революцию в здравоохранении, улучшив диагностику, лечение, уход за больными. Алгоритмы машинного обучения могут анализировать медицинские изображения, такие как рентгеновские снимки и МРТ, для обнаружения аномалий и помогать рентгенологам в проведении точных диагнозы. Кроме того, используются чат-боты и виртуальные медсестры, управляемые искусственным интеллектом. повышение вовлеченности и мониторинга пациентов. В финансовой индустрии ИИ используется для алгоритмической торговли. обнаружение мошенничества, оценка кредитного риска и обслуживание клиентов. Роботы-консультанты на базе искусственного интеллекта обеспечивают персонализированные инвестиции рекомендации, а обработка естественного языка позволяет анализ настроений новостей и социальных сетей для принятия торговых решений. ИИ меняет образование посредством персонализированного обучения платформы, которые адаптируются к потребностям и способностям студентов. Разумный системы обучения обеспечивают мгновенную обратную связь и индивидуальные упражнения, повышение успеваемости учащихся. Кроме того, аналитика на основе ИИ помочь преподавателям выявить учащихся из группы риска и своевременно внедрить вмешательства. Автоматизация и робототехника уже давно ассоциируются с производство, но ИИ выводит эти технологии на новый уровень уровень. Роботы, управляемые искусственным интеллектом, могут выполнять сложные задачи с точностью. сокращение ошибок и повышение эффективности. Прогностическое обслуживание на базе искусственного интеллекта минимизирует время простоя оборудования, экономя компании миллионы. Транспортный сектор переживает сейсмический сдвиг Автономные транспортные средства с искусственным интеллектом. Такие компании, как Tesla и Waymo, разработка беспилотных автомобилей, которые обещают быть более безопасными и эффективными транспорт. ИИ также оптимизирует управление трафиком, сокращая пробки и выбросы. ИИ оставил свой след в индустрии развлечений благодаря контенту системы рекомендаций, такие как алгоритм рекомендаций Netflix. Кроме того, искусство и музыка, созданные с помощью искусственного интеллекта, получают признание. в творческом мире, стирая границы между человеком и машинное творчество. Преимущества искусственного интеллекта
ИИ предлагает множество преимуществ, в том числе:
Эффективность и продуктивность: ИИ автоматизирует рутинные задачи, освобождая побудить работников сосредоточиться на более творческих и стратегических начинания. Это повышает производительность и снижает риск человеческая ошибка. Улучшение процесса принятия решений: системы искусственного интеллекта могут анализировать огромные наборы данных. и предоставить информацию, которую люди могут упустить из виду. Это помогает предприятия принимают решения на основе данных и остаются конкурентоспособными. Расширенное здравоохранение: искусственный интеллект помогает медицинским работникам в диагностики заболеваний, прогнозирования вспышек и разработки персонализированные планы лечения, в конечном итоге улучшающие состояние пациента результаты. Безопасность и защищенность: ИИ используется в сфере кибербезопасности для обнаружения и предотвратить кибератаки. Это также повышает физическую безопасность за счет системы распознавания лиц и наблюдения. Проблемы и опасения Несмотря на свои преимущества, ИИ также создает проблемы и проблемы: Смещение рабочих мест: одна из наиболее серьезных проблем окружающий ИИ — это потенциальная возможность увольнения. Как ИИ системы автоматизируют задачи, некоторые традиционные профессии могут стать устарели и требуют изменения квалификации рабочей силы и ее переподготовки. Предвзятость и справедливость: алгоритмы ИИ могут наследовать предвзятости, присутствующие в данных, на которых они обучаются, что приводит к дискриминации результаты. Обеспечение справедливости и прозрачности в системах искусственного интеллекта является критический вызов. Конфиденциальность: системам искусственного интеллекта часто требуется доступ к огромному количеству данных. личные данные. Защита частной жизни людей при использовании Возможности искусственного интеллекта вызывают постоянную озабоченность.
У меня возникла сложная проблема с макетом CSS, и мне нужна помощь. Моя цель — создать заголовок в контейнере, который всегда следует за горизонтальной прокруткой, но следует за вертикальной прокруткой только тогда, когда вертикальная прокрутка присутствует.
В контейнере будет несколько документов разной высоты. Ключевое требование — контейнер не должен расширяться до высоты самого высокого документа, что усложняет задачу.
Первоначальный вид
После прокрутки влево
Особые требования:
[*]Заголовок всегда должен следовать за горизонтальной прокруткой. [*]Заголовок должен следовать за вертикальной прокруткой только тогда, когда в контейнере присутствует вертикальная прокрутка. [*]Контейнер должен сохранять свой размер и не расширяться до высоты самого высокого содержащегося элемента. [*]Обеспечить плавную прокрутку. [*]Обеспечить кроссбраузерную и кроссплатформенную совместимость с мобильными/настольными компьютерами.
Вопросы:
[*]Есть ли способ добиться этого с помощью CSS, возможно, с помощью расширенных свойств или методов? [*]Если необходимо решение на JavaScript, как его оптимизировать для плавной прокрутки и широкой совместимости?
Будем очень признательны за любые рекомендации или советы по этому поводу!
Вот что я изучил на данный момент:
[*]Я изучил свойство CSS contains, чтобы изолировать подраздел DOM, но это не совсем решило проблему. [*]Я попробовал решение на основе JavaScript, но оно привело к недостаточной плавности и проблемам кросс-браузерной совместимости (событие прокрутки/Intersection Observer).
Настройка => https://codepen.io/samuelclo/pen/poYorbv?editors=1100
const getScrollbarWidth = () => { // Создание невидимого контейнера const external = document.createElement("div"); external.style.visibility = "скрытый"; external.style.overflow = "прокрутка"; // принудительное появление полосы прокрутки // @ts-expect-error необходим для приложений WinJS external.style.msOverflowStyle = "полоса прокрутки"; document.body.appendChild(внешний); // Создаем внутренний элемент и помещаем его в контейнер const внутренний = document.createElement("div"); внешний.appendChild(внутренний); // Вычисление разницы между полной шириной контейнера и шириной дочернего элемента const ScrollbarWidth = external.offsetWidth - внутренний.offsetWidth; // Удаление временных элементов из DOM внешний.parentNode?.removeChild(внешний); вернуть ширину полосы прокрутки; }; document.documentElement.style.setProperty( "--scrollbar-width-js", getScrollbarWidth() + «px» ); :root { --common-width: 300 пикселей; --scrollbar-width: var(--scrollbar-width-js, 12px) } html, тело { маржа: 0; заполнение: 0; семейство шрифтов: system-ui, без засечек; } .карта { ширина: var (--common-width); радиус границы: 10 пикселей; отступ: 15 пикселей 25 пикселей; box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.02), 0 0 0 1px rgba(27, 31, 35, 0.15); } заголовок { верх: 0; поле: 20 пикселей авто; } основной { дисплей: гибкий; переполнение-х: авто; тип прокрутки-привязки: x обязательно; /* Используйте для определения высоты, потому что если все дочерние элементы исключены из DOM, высоты не будет min-height: 100vh; */ минимальная высота: 100vh; } .l-include-gutter { гибкое сжатие: 0; ширина: 100%; прокрутка-привязка-выравнивание: по центру; /* Совсем недавно */ /* https://caniuse.com/?search=contain */ содержать: размер; /* Добавляем ширину полосы прокрутки */ полоса прокрутки: стабильная; переполнение-y: прокрутка; /* Поскольку дочерний элемент имеет ширину более 100% */ переполнение-х: клип; } .l-статья { ширина: Calc(100% + var(--ширина полосы прокрутки)); дисплей: гибкий; гибкое направление: столбец; выровнять-элементы: по центру; } /* Для сафари */ /* https://caniuse.com/mdn-css_properties_scrollbar-gutter */ @supports not (полоса прокрутки: стабильно) { .l-статья { переполнение-y: прокрутка; } Изучение трансформации: искусственный интеллект и изменение климата Погрузитесь в две разные, но взаимосвязанные области человеческих инноваций. и глобальная озабоченность. Сначала совершите путешествие по эволюции искусственных Интеллект (ИИ) в его развитии с момента его зарождения в середине 20-го века. к преобразующей технологии, которой она является сегодня. Узнайте, как ИИ произвели революцию в промышленности, здравоохранении и принятии решений, а также создавая такие проблемы, как перемещение рабочих мест и предвзятость.
Нажмите на меня! Изменение климата Изменение климата – одна из самых актуальных проблем, стоящих перед человечеством сегодня. Это относится к долгосрочным изменениям глобальной температуры и погодные условия, в первую очередь обусловленные деятельностью человека, такой как сжигание ископаемого топлива, вырубка лесов и промышленные процессы. Нажмите на меня! Эволюция искусственного интеллекта Искусственный интеллект (ИИ) прошел долгий путь с момента своего появления. зарождение в середине 20 века. Термин «искусственный интеллект» был впервые предложен Джоном Маккарти в 1956 году во время Семинар Дартмутского колледжа. Ранние исследования ИИ были сосредоточены на символических системы рассуждений и правил, но прогресс был медленным из-за ограниченная вычислительная мощность. В 21 веке искусственный интеллект вступил в новую эру благодаря достижениям в машинном обучении и нейронных сетях. Глубокое обучение, подмножество машинного обучения, позволило компьютерам обрабатывать обрабатывать огромные объемы данных и выполнять сложные задачи. Этот прорыв проложило путь к разработке систем искусственного интеллекта, которые могли бы понимать естественный язык, распознавать изображения и даже побеждать людей чемпионы в таких играх, как шахматы и го. Применение ИИ в различных отраслях ИИ произвел революцию в здравоохранении, улучшив диагностику, лечение, уход за больными. Алгоритмы машинного обучения могут анализировать медицинские изображения, такие как рентгеновские снимки и МРТ, для обнаружения аномалий и помогать рентгенологам в проведении точных диагнозы. Кроме того, используются чат-боты и виртуальные медсестры, управляемые искусственным интеллектом. повышение вовлеченности и мониторинга пациентов. В финансовой индустрии ИИ используется для алгоритмической торговли. обнаружение мошенничества, оценка кредитного риска и обслуживание клиентов. Роботы-консультанты на базе искусственного интеллекта обеспечивают персонализированные инвестиции рекомендации, а обработка естественного языка позволяет анализ настроений новостей и социальных сетей для принятия торговых решений. ИИ меняет образование посредством персонализированного обучения платформы, которые адаптируются к потребностям и способностям студентов. Разумный системы обучения обеспечивают мгновенную обратную связь и индивидуальные упражнения, повышение успеваемости учащихся. Кроме того, аналитика на основе ИИ помочь преподавателям выявить учащихся из группы риска и своевременно внедрить вмешательства. Автоматизация и робототехника уже давно ассоциируются с производство, но ИИ выводит эти технологии на новый уровень уровень. Роботы, управляемые искусственным интеллектом, могут выполнять сложные задачи с точностью. сокращение ошибок и повышение эффективности. Прогностическое обслуживание на базе искусственного интеллекта минимизирует время простоя оборудования, экономя компании миллионы. Транспортный сектор переживает сейсмический сдвиг Автономные транспортные средства с искусственным интеллектом. Такие компании, как Tesla и Waymo, разработка беспилотных автомобилей, которые обещают быть более безопасными и эффективными транспорт. ИИ также оптимизирует управление трафиком, сокращая пробки и выбросы. ИИ оставил свой след в индустрии развлечений благодаря контенту системы рекомендаций, такие как алгоритм рекомендаций Netflix. Кроме того, искусство и музыка, созданные с помощью искусственного интеллекта, получают признание. в творческом мире, стирая границы между человеком и машинное творчество. Преимущества искусственного интеллекта
ИИ предлагает множество преимуществ, в том числе:
Эффективность и продуктивность: ИИ автоматизирует рутинные задачи, освобождая побудить работников сосредоточиться на более творческих и стратегических начинания. Это повышает производительность и снижает риск человеческая ошибка. Улучшение процесса принятия решений: системы искусственного интеллекта могут анализировать огромные наборы данных. и предоставить информацию, которую люди могут упустить из виду. Это помогает предприятия принимают решения на основе данных и остаются конкурентоспособными. Расширенное здравоохранение: искусственный интеллект помогает медицинским работникам в диагностики заболеваний, прогнозирования вспышек и разработки персонализированные планы лечения, в конечном итоге улучшающие состояние пациента результаты. Безопасность и защищенность: ИИ используется в сфере кибербезопасности для обнаружения и предотвратить кибератаки. Это также повышает физическую безопасность за счет системы распознавания лиц и наблюдения. Проблемы и опасения Несмотря на свои преимущества, ИИ также создает проблемы и проблемы: Смещение рабочих мест: одна из наиболее серьезных проблем окружающий ИИ — это потенциальная возможность увольнения. Как ИИ системы автоматизируют задачи, некоторые традиционные профессии могут стать устарели и требуют изменения квалификации рабочей силы и ее переподготовки. Предвзятость и справедливость: алгоритмы ИИ могут наследовать предвзятости, присутствующие в данных, на которых они обучаются, что приводит к дискриминации результаты. Обеспечение справедливости и прозрачности в системах искусственного интеллекта является критический вызов. Конфиденциальность: системам искусственного интеллекта часто требуется доступ к огромному количеству данных. личные данные. Защита частной жизни людей при использовании Возможности искусственного интеллекта вызывают постоянную озабоченность.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение