Выбор пользователя CSS — Сообщество разработчиков

user-select определяет, могут ли (и в какой степени) пользователи выбирать контент в элементе — следующий код демонстрирует различные допустимые значения и объясняет ограничения, налагаемые этими значениями. user-select не имеет ничего общего со «стилем». выбор пользователя : текст ; // текст можно выбрать user-select : none ; // текст can ' t быть выбран пользовательский выбор…

Крутые и бесплатные примеры CSS анимации для вдохновения

Привет, друзья! Сейчас довольно сложно найти качественные исходники кода с красивой и, к тому же, бесплатной анимацией на CSS. И по этому я представляю вашему вниманию подборку исходников различных анимационных объектов для вдохновения. К тому же данные исходники вы сможете совершенно бесплатно скачать и использовать на своих сайтах. В общем я надеюсь, что вам понравятся…

Улучшите свой CSS с помощью этих 5 принципов

Написание CSS действительно просто и понятно, так почему же при написании CSS нужны принципы и передовые методы? По мере увеличения масштабов проекта и увеличения числа людей, работающих над проектом, проблемы становятся все более очевидными и могут вызвать серьезные проблемы в будущем. Устранение проблем может стать сложнее, дублированный код, сложные цепочки переопределения и использование ! Important…

Учебник Tailwind CSS: узнайте, как создавать веб-сайты, используя CSS-фреймворк с первыми утилитами

В этом уроке я хотел бы познакомить вас с одним из самых быстрорастущих и перспективных CSS Framework на данный момент Tailwind CSS. Он отличается от других фреймворков, таких как Bootstrap, потому что он построен на новом способе построения пользовательских интерфейсов с использованием структуры классов CSS, ориентированных на служебные программы, в отличие от структуры OOCSS из…

Учебник по макету CSS Grid с полным выпуском полей · Джош Комо

В те дни существовал золотой стандарт макета веб-сайта, который все стремились создать, но это было общеизвестно трудно сделать правильно: Макет Священного Грааля . Не похоже, чтобы это было так сложно, правда? Но это была эпоха до появления flexbox; нашими инструментами для работы были таблицы и поплавки, и ни один из них не подходил для этой…

20 бесплатных CSS для кредитных карт для придания гламурности дизайну платежного интерфейса

С момента зарождения электронной коммерции онлайн-магазины стали широко распространенной формой транзакций в цифровом пространстве. А с нынешней глобальной пандемией, когда клиенты не решаются выходить из дома или достаточно упрямы, чтобы следовать протоколам здравоохранения (например, носить маску), воздействие COVID-19 только укрепляет основу и важность электронной коммерции. Независимо от того, какой веб-сайт покупок в Интернете или мобильное…

Что я узнал, исправив одну строчку CSS в проекте с открытым исходным кодом

Я просматривал документы Svelte на своем iPhone и наткнулся на вопиющую ошибку пользовательского интерфейса. Насечка в ручке REPL была совершенно не в порядке. Я всегда стараюсь внести свой вклад в развитие открытого исходного кода и подумал, что это можно быстро и легко исправить. Оказывается, это было намного больше, чем просто изменение одной строки CSS. Репликация,…

Создание карусели с использованием CSS Scroll Snap и JavaScript

Этот учебник поможет вам создать адаптивную карусель, используя свойство CSS scroll-snap и очень мало JavaScript для навигации. Вы можете использовать его для демонстрации продуктов, в качестве галереи или для своих отзывов — как в примере в этом руководстве. Итак, вот что мы будем создавать:

 пример карусели "width =" 600 "height =" 327 "class =" alignnone size-full wp-image-155301 "/> </p>
<p> На самом деле это просто горизонтальная секция прокрутки, но когда вы прокручиваете ее, она «щелкает» (автоматически регулирует положение контейнера прокрутки), чтобы обеспечить отображение всего элемента, заставляя его вести себя как карусель. Вы также можете использовать стрелки для отображения следующего и предыдущего элементов, для чего требуется JavaScript. Чтобы продолжить, вам необходимо иметь базовые знания HTML, CSS и JavaScript. По пути вы узнаете о свойствах привязки прокрутки CSS. Приступим. </p>
<div class=

Миллионы шрифтов, тем и графики: ТОЛЬКО от 16,50 долларов США в месяц

 Веб-шрифты "width =" 250 "height =" 166 "/>
</div>
<div class=  WordPress шаблоны "width =" 250 "height =" 166 "/> 

<div class=

WordPress темы

1200+ тем

 Графические ресурсы "width =" 250 "height =" 166 "/> 

<div class=

Графические ресурсы

32 000+ изображений

СКАЧАТЬ

 Envato Elements "width =" 119 "height =" 13 "/> </div>
</div>
<p></a>
</div>
<p> <img style=

Создание

Создайте пустой HTML-документ и назовите его index.html . Добавьте базовый скелет HTML. Если вы используете Visual Studio Code, все, что вам нужно сделать, это ввести «!» и нажмите Enter. У вас получится вот это.

 


   
   
    Документ 


  


В этой демонстрации используется шрифт «Noto Sans». Давайте встроим этот шрифт из Google Fonts. Добавьте эту ссылку CDN под тегом заголовка, чтобы встроить обычный и курсивный стили этого шрифта.

 

Создайте свою таблицу стилей и назовите ее style.css . Свяжите таблицу стилей со своим HTML-документом под ссылкой Google fonts CDN, используя

 

Я загрузил три портретных изображения с Pexels и обрезал их квадратной формы для этой демонстрации. Вы можете добавить свой собственный. Назовите их testimonial1.jpg testimonial2.jpg и testimonial3.jpg .

Создание простого скроллера

Давайте сначала создадим простой горизонтальный скроллер с тремя элементами с такой же шириной, как у контейнера прокрутки.

HTML

Добавьте эту разметку в тег тела в свой HTML-файл:

 
Пункт 1
Пункт 2
Пункт 3

Здесь div отзывов действует как оболочка, внутри которой находится горизонтальный скроллер а затем три элемента div .

CSS

В style.css начните с некоторых общих стилей для всех элементов:

 * {
   маржа: 0;
   отступ: 0;
   размер коробки: рамка-рамка;
}

Добавьте эти стили к элементу body :

 body {
   семейство шрифтов: «Noto Sans», без засечек;
   размер шрифта: 1em;
   цвет: # 4A5568;
}

Ограничьте ширину обертки отзывов примерно до 800 пикселей и отцентрируйте ее.

 .testimonials {
   максимальная ширина: 800 пикселей;
   маржа: авто;
}

Добавьте эти базовые стили, чтобы увидеть, как работает скроллер.

 .scroller {
   переполнение-x: прокрутка;
   дисплей: гибкий;
}
.пункт {
   минимальная ширина: 100%;
   минимальная высота: 200 пикселей; /* Начать с */
   цвет фона: # EDF2F7; / * Для демонстрации * /
}

Здесь вы можете увидеть такую ​​секцию горизонтальной прокрутки.

 начало карусели - горизонтальная секция прокрутки "width =" 1024 "height =" 266 "class =" alignnone size-large wp-image-155303 "/> </p>
<h3> Привязка прокрутки </h3>
<p> С помощью привязки прокрутки CSS можно принудительно установить положение прокрутки (плавное перемещение в принудительное положение), как только пользователь прекращает прокрутку. Это работает за счет применения двух основных свойств — <code> scroll-snap-type </code> и <code> scroll-snap-align </code>. </p>
<p> Свойство <strong> scroll-snap-type </strong> применяется к родительскому контейнеру <strong> </strong> (в нашем случае это div <code> scroller </code>). Он принимает два аргумента — направление привязки (<code> x | y | both </code>) и поведение привязки (<code> обязательное | близость </code>). Нам нужно использовать <code> x </code> для направления, потому что мы прокручиваем горизонтально. Для поведения <code> обязательный </code> означает, что браузер должен привязаться к позиции, в то время как <code> близость </code> менее строгий. Мы будем использовать <code> обязательный </code>. </p>
<p> Свойство <strong> scroll-snap-align </strong> применяется к дочерним элементам. Он определяет точку привязки. Требуется один или два аргумента для направления <code> x </code> или / и <code> y </code> (<code> none | start | end | center </code>). В нашем случае это свойство может иметь любое значение, кроме <code> none </code>потому что наши элементы составляют 100% ширины родительского контейнера. Вы можете подробнее ознакомиться с концепцией CSS Scroll Snap здесь. </p>
<p> Добавьте эти свойства в divs </code> scroller </code> и <code> item </code>. </p>
<pre class= .scroller { / * Здесь существующие стили * / scroll-snap-type: x обязательный; } .пункт { / * Здесь существующие стили * / прокрутка-привязка-выравнивание: центр; }

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

Добавление содержания

Давайте добавим содержание к элементам.

HTML

 
 Элиз

Eu rebum molestie per. Нет nostrud imperdiet abhorreant qui, hinc incorrupte vix ad. Vel id aliquip oblique. Primis feugait сидеть, грубый илуд удобный дуэт шт. Graece tempor eripuit sed в.

Элиз
 Джон

Vitae pericula maluisset ut mei, pro eleifend gubergren eu. Et his brute graeci. Affert ponderum ei vel, dolorum accumsan ea имеет. Sea oblique salutatus ei, simul lucilius pri et. Errem melius temporibus ut eos

Джон
 Imani

Ne est virtute indexum, quaeque vituperata cum ut. Te nisl quaeque pri. Vix ex autem latine, mel ne nobis scaevola, ei est dolor utinam commune. Pri unum doctus in, cu primis pertinax eos.

Imani

CSS

Пора его украсить.

 .testimonials {
   / * Здесь существующие стили * /
   отступ: 15 пикселей;
   выравнивание текста: центр;
}
.пункт {
   / * Здесь существующие стили * /
   цвет фона: белый; / * Измените значение на белый * /
   нижнее поле: 10 пикселей;
   отступ: 0 50 пикселей;
}
.item img {
   маржа: 15 пикселей авто-60 пикселей;
   ширина: 120 пикселей;
   высота: 120 пикселей;
   граница: сплошная 4px #ffffff;
   радиус границы: 60 пикселей;
   box-shadow: 0 4px 6px -1px rgba (0, 0, 0, 0,1);
   z-индекс: 2;
}
.открытка {
   цвет фона: rgb (237, 242, 247);
   отступ: 80 пикселей 40 пикселей 40 пикселей;
   радиус границы: 10 пикселей;
   box-shadow: 0 4px 6px -1px rgba (0, 0, 0, 0,1);
   z-индекс: 1;
}
.card p {
   стиль шрифта: курсив;
   высота строки: 1,6;
}
.card span {
   дисплей: блок;
   маржа сверху: 20 пикселей;
   цвет: бирюзовый;
   font-weight: жирный;
   межбуквенный интервал: 0,05 мкм;
   преобразование текста: прописные буквы;
}

Наша карусель обрела форму. Единственное, что пока не решено, — это функция навигации.

Добавление навигации

В этой демонстрации я добавил простые стрелки с символами и > для кнопок навигации. Вы также можете использовать значки или изображения.

HTML

Добавьте эти две строки сразу после div scroller но внутри рекомендательного div :

  & Lt; 
 & триазол 

CSS

Добавьте в свою таблицу стилей для размещения и оформления кнопок навигации:

 .testimonials {
   / * Здесь существующие стили * /
   положение: относительное;
}
.testimonials .btn {
   позиция: абсолютная;
   верх: 50%;
   маржа сверху: 20 пикселей;
   высота: 30 пикселей;
   ширина: 30 пикселей;
   радиус границы: 15 пикселей;
   цвет фона: rgba (95, 106, 117, 0,3);
   z-индекс: 1;
   высота строки: 30 пикселей;
   выравнивание текста: центр;
   цвет белый;
   font-weight: жирный;
}
.testimonials .btn: hover {
   цвет фона: rgba (95, 106, 117, 0,5);
   курсор: указатель;
}
.testimonials .btn.next {
   справа: 15 пикселей;
}
.testimonials .btn.prev {
   слева: 15 пикселей;
}

JavaScript

Нам нужен JavaScript, чтобы кнопки работали. Добавьте этот сценарий перед закрытием тега body .

 

В приведенном выше коде мы добавили обработчики событий click к кнопкам prev и next . Функциональность перехода к предыдущему или следующему элементу достигается с помощью метода scrollBy . Ознакомьтесь с синтаксисом и примерами метода element.scrollBy .

Вариант поведения : «гладкий» дает эффект плавного скольжения. Обратите внимание, что этот эффект не поддерживается в IE 11 и некоторых более старых версиях других браузеров.

Создание цикла

При желании вы можете сделать этот цикл карусели — нажатие кнопки «Далее» для последнего элемента заставляет карусель начинаться с начала и аналогичное поведение для кнопки «предыдущая», изменив методы в сценарии на следующие:

 function scrollToNextItem () {
   если (scroller.scrollLeft <(scroller.scrollWidth - itemWidth))
       // Позиция прокрутки не в начале последнего элемента
       scroller.scrollBy ({left: itemWidth, вверху: 0, поведение: 'гладкое'});
   еще
       // Достигнут последний элемент. Вернитесь к первому элементу, установив положение прокрутки на 0
       scroller.scrollTo ({слева: 0, сверху: 0, поведение: «гладко»});
}
function scrollToPrevItem () {
   если (scroller.scrollLeft! = 0)
       // Позиция прокрутки не в начале первого элемента
       scroller.scrollBy ({left: -itemWidth, верх: 0, поведение: 'гладкий'});
   еще
       // Это первый элемент. Перейти к последнему элементу, установив положение прокрутки на ширину скроллера
       scroller.scrollTo ({left: scroller.scrollWidth, вверху: 0, поведение: 'гладкое'});
}

Делаем его полностью адаптивным

То, что у нас есть сейчас, уже реагирует. За исключением того, что для ширины браузера меньше 480 пикселей карта становится слишком узкой и длинной. Итак, давайте уменьшим отступ для элемента и карточки для этой ширины с помощью медиа-запросов.

Добавьте это в свою таблицу стилей:

@media screen и (max-width: 480px) {
.item {
padding: 0 30px;
}
.card {
padding: 80px 30px 30px;
]}
}

Вот оно! Вы успешно создали адаптивную карусель для раздела отзывов с наименьшим количеством JavaScript, а также узнали о новых свойствах scroll-snap в CSS. Вы можете изменить эту карусель в соответствии со своими потребностями. Попробуйте использовать эту карусель для изображений различной ширины и посмотрите, как она себя ведет.

Здесь вы можете скачать полный исходный код.

Загрузить исходный код

Это сообщение может содержать партнерские ссылки. Смотрите наше раскрытие партнерских ссылок здесь .

Перевод дизайнерских каркасов в доступный HTML / CSS — Smashing Magazine

Об авторе Харрис — веб-разработчик, увлеченный цифровым равенством , Он работает в Deque Systems в качестве главного инженера пользовательского интерфейса, создающего отличные веб-приложения. … Подробнее о Харрис … Самый эффективный способ создания доступных веб-сайтов и приложений — это «сдвинуть влево», включив тестирование доступности в самые ранние этапы Ваш процесс разработки и дизайна. В этой статье…