Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

CSS + Программирование

С этим тегом используют

HTML Верстка Javascript IT Web Frontend Программист IT юмор Разработка Python Картинка с текстом Юмор Все
191 пост сначала свежее
32
Web.Study
Web.Study
2 года назад
Web-технологии

Адаптивная вёрстка: что это, а главное зачем⁠⁠

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

Если вы забьете болт на адаптивность, то будьте готовы к тому, что ваш сайт будет открываться криво у какого-нибудь Антона из Пензы с телефоном 5-летней давности с не самым актуальным разрешением.


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

Наш уютный канал в телеграме

Адаптивная вёрстка: что это, а главное зачем Программирование, IT, CSS, Javascript, Web-программирование, Веб-дизайн, Frontend, Длиннопост

Адаптивная вёрстка меняет дизайн страницы в зависимости от поведения пользователя, платформы, размера экрана и ориентации девайса и является неотъемлемой частью современной веб-разработки. Она позволяет существенно экономить и не отрисовывать новый дизайн для каждого разрешения, а менять размеры и расположение отдельных элементов.



Частичное решение: делаем всё гибким


Конечно, это не идеальный способ, но он устраняет большую часть проблем с адаптивной вёрсткой.

Итан Маркотт (Ethan Marcotte) создал простой шаблон, демонстрирующий использование гибкой вёрстки:

Адаптивная вёрстка: что это, а главное зачем Программирование, IT, CSS, Javascript, Web-программирование, Веб-дизайн, Frontend, Длиннопост

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


- Hiding and Revealing Portions of Images;

- Creating Sliding Composite Images;

- Foreground Images That Scale With the Layout.


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

Адаптивная вёрстка: что это, а главное зачем Программирование, IT, CSS, Javascript, Web-программирование, Веб-дизайн, Frontend, Длиннопост

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


<h1 id="logo"> 
<a href="#"><img src="site/logo.png" alt="The Baker Street Inquirer"/>
</a> </h1>

Элемент h1 содержит изображение в качестве фона, а картинка выровнена относительно фона контейнера (заголовка).



Гибкие изображения


Работа с картинками — одна из самых главных проблем при работе с адаптивной вёрсткой сайтов. Существует много способов для изменения размера изображений, и большинство из них довольно просто реализовать. Одно из решений — использование max-width в CSS:


img {max-width: 100%;}

Максимальная ширина изображения равняется 100% от ширины экрана или окна браузера, поэтому чем меньше ширина, тем меньше картинка. Обратите внимание, что max-width не поддерживается в IE, поэтому используйте width: 100%.


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



Ещё один способ: отзывчивые изображения


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


Для этого нужно скачать файл picturefill.js, а затем написать следующий код, внутри тега head:


<script src="picturefill.js"></script>

Чтобы подгрузка этого файла не влияла на загрузку сайта, рекомендуем добавить в тег script атрибут async. Это позволит сайту загружаться не дожидаясь файла picturefill.js. Однако, для того чтобы старые браузеры распознавали элементы picture, вам нужно добавить строку, document.createElement( "picture" ); перед первым тегом script.


Теперь вы можете использовать следующий код, для того чтобы указать браузеру какие изображения нужно отображать, в зависимости от размера окна:


<img
sizes="(min-width: 40em) 80vw, 100vw"
srcset="examples/images/medium.jpg 375w,
examples/images/large.jpg 480w,
examples/images/extralarge.jpg 768w"
alt="…">

Атрибут sizes используется для того, чтобы указать сколько места будет занимать изображение. Подробнее о значениях sizes и srcset здесь.

Для более явного контроля над изображениями существует элемент picture.

Интересная фича для iPhone


В iPhone и iPod touch есть особенность: дизайн, созданный для больших экранов, просто сожмется в браузере с маленьким разрешением без скролла или дополнительной мобильной вёрстки. Однако изображений и текста не будет видно:

Адаптивная вёрстка: что это, а главное зачем Программирование, IT, CSS, Javascript, Web-программирование, Веб-дизайн, Frontend, Длиннопост

Для решения данной проблемы используется тег meta:

<meta name="viewport" content="width=device-width; initial-scale=1.0">

Если initial-scale равно единице, ширина картинок становится равной ширине экрана.

Настраиваемая структура макета страницы


Для значительных изменений размера страницы может понадобиться изменить расположение элементов в целом. Это удобно делать через отдельный файл с адаптивной вёрсткой CSS или, что более эффективно, через CSS-медиазапрос. Проблем возникнуть не должно, т. к. большинство стилей останутся прежними, и изменятся только некоторые.


Например, у вас есть главный файл со стилями, который задает #wrapper, #content, #sidebar, #nav вместе с цветами, фоном и шрифтами. Если ваши главные стили делают макет слишком узким, коротким, широким или высоким, вы можете это определить и подключить новые стили.


style.css (основной):

/* Основные стили, которые будут унаследованы дочерней таблицей стилей */
html,body{
background...
font...
color...
}
h1,h2,h3{}
p, blockquote, pre, code, ol, ul{}
/* Структурные элементы */
#wrapper{
width: 80%; 
margin: 0 auto; 
background: #fff; 
padding: 20px;
}
#content{
width: 54%; 
float: left; 
margin-right: 3%;
}
#sidebar-left{
width: 20%; 
float: left; 
margin-right: 3%;
}
#sidebar-right{
width: 20%; 
float: left;
}

mobile.css (дочерний):

#wrapper{
width: 90%;
}

#content{
width: 100%;
}

#sidebar-left{
width: 100%;
clear: both;

/* Дополнительные стили для нового дизайна */
border-top: 1px solid #ccc;
margin-top: 20px;
}

#sidebar-right{
width: 100%;
clear: both;

/* Additional styling for our new layout */
border-top: 1px solid #ccc;
margin-top: 20px;
}
Адаптивная вёрстка: что это, а главное зачем Программирование, IT, CSS, Javascript, Web-программирование, Веб-дизайн, Frontend, Длиннопост

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


О других особенностях адаптивной верстки в CSS в статье о нетривиальных моментах разработки фронтэнда на CSS.



Адаптивная вёрстка с помощью медиазапросов CSS3


Рассмотрим, как можно использовать CSS3-медиазапросы для создания адаптивного дизайна. min-width задает минимальную ширину окна браузера или экрана, к которой будут применены определенные стили. Если какое-нибудь значение будет ниже min-width, то стили будут проигнорированы. max-width делает противоположное.


Пример:


@Media screen and (min-width: 600px) {
.hereIsMyClass {
width: 30%;
float: right;
}
}
Медиазапрос заработает только когда min-width будет больше или равна 600 px.


@Media screen and (max-width: 600px) {

.aClassforSmallScreens {
clear: both; font-size: 1.3em;
}
}

В этом случае класс (aClassforSmallscreens) будет работать при ширине экрана меньше или равной 600 px.


В то время как min-width и max-width могут быть применимы и к ширине экрана, и к ширине окна браузера, нам может понадобиться работать только с шириной устройства. Например, чтобы игнорировать браузеры, открытые в маленьком окне. Для этого можно использовать min-device-width и max-device-width:


@Media screen and (max-device-width: 480px) {
.classForiPhoneDisplay {
font-size: 1.2em;
}
}

@Media screen and (min-device-width: 768px) {
.minimumiPadWidth {
clear: both;
margin-bottom: 2px solid #ccc;
}
}

Специально для iPad у медиазапросов есть свойство orientation, значениями которого могут быть либо landscape (горизонтальный), либо portrait (вертикальный):

@media screen and (orientation: landscape) {
.iPadLandscape {
width: 30%;
float: right;
}
}

@media screen and (orientation: portrait) {
.iPadPortrait {
clear: both;
}
}

Также значения медиазапросов можно комбинировать:

@media screen and (min-width: 800px) and (max-width: 1200px) {
.classForaMediumScreen {
background: #cc0000;
width: 30%;
float: right;
}
}

Этот код будет выполнен только для экранов или окон браузеров шириной от 800 до 1200 px.

Загрузить определенный лист со стилями для разных значений медиазапросов можно так:

<link rel="stylesheet" media="screen and (max-width: 600px)" href="small.css"/>
<link rel="stylesheet" media="screen and (min-width: 600px)" href="large.css"/>
<link rel="stylesheet" media="print" href="print.css"/>



JavaScript

Если ваш браузер не поддерживает CSS3-медиазапросы, то замену стилей можно организовать с помощью jQuery:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$(window).bind("resize", resizeWindow);
function resizeWindow(e){
var newWindowWidth = $(window).width();

// Если ширина меньше 600 px, используется таблица стилей для мобильного
if(newWindowWidth < 600){
$("link[rel=stylesheet]").attr({href : "mobile.css"});
} else if(newWindowWidth > 600){
// Если ширина больше 600 px, используется таблица стилей для десктопа
$("link[rel=stylesheet]").attr({href : "style.css"});
}
}
});
</script>


Низкий поклон всем тем, кто дочитал. Вы герои

Показать полностью 5
[моё] Программирование IT CSS Javascript Web-программирование Веб-дизайн Frontend Длиннопост
2
15
Web.Study
Web.Study
2 года назад
Web-технологии

Анимированные кнопки выравнивания на CSS⁠⁠

Еще больше таких решений для новичков во front-end

Анимированные кнопки выравнивания на CSS Программирование, IT, Web-программирование, Веб-дизайн, Веб-разработка, CSS, Гифка

Вроде бы простая, но приятная анимация кнопок выравнивания текста. Выполнена с помощью SVG и CSS. Если решите сделать свой редактор текста, то можно использовать эту или похожую анимацию выравнивания:


https://codepen.io/jkantner/pen/xxWZeLz

[моё] Программирование IT Web-программирование Веб-дизайн Веб-разработка CSS Гифка
11
NordLake
NordLake
2 года назад

Крестики-нолики на чистом CSS без JavaScript⁠⁠

исходный код:

https://codepen.io/alvaromontoro/pen/BexWOw

чистый CSS/HTML

Там реализован "типа ИИ". Проблема кликов решена через input check/radio.

Крестики-нолики на чистом CSS без JavaScript CSS, Программирование, Скрипт
CSS Программирование Скрипт
3
7
Web.Study
Web.Study
2 года назад
Web-технологии

Анимированная полка с вещами на CSS⁠⁠

Телеграм - https://t.me/havaevau_webstudy

Анимированная полка с вещами на CSS Программирование, IT, Web-программирование, Web, Веб-дизайн, Веб-разработка, CSS

Сodepen-проект «My Stuff» наглядно демонстрирует современные возможности препроцессоров для HTML и CSS, а именно Pug и SCSS. Посмотрите сами, как относительно малым количеством строк, можно реализовать интересный анимированный рисунок:


https://codepen.io/annampawl/pen/yLvoGQY

Показать полностью 1
[моё] Программирование IT Web-программирование Web Веб-дизайн Веб-разработка CSS
5
7
Web.Study
Web.Study
2 года назад
Web-технологии

Полоса прокрутки (scrollbar) - один из самых неиспользуемых элементов в веб-разработке. Как с ним работать?⁠⁠

Полоса прокрутки присутствует сегодня на любом сайте видимо или невидимо. Это вполне обыденный элемент, на который обычно никто не обращает особого внимания.


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


Телеграм - https://t.me/havaevau_webstudy

Полоса прокрутки (scrollbar) - один из самых неиспользуемых элементов в веб-разработке. Как с ним работать? Программирование, IT, Разработка, Web-программирование, Web, Веб-дизайн, CSS, Длиннопост

Основы


Бывает, что содержимое элемента не помещается в нем, так как оно слишком велико. И чтобы сделать содержимое прокручиваемым, можно использовать overflow: auto. Благодаря ему полосы прокрутки будут отображаться по умолчанию.


Вы можете кастомизировать скроллбар используя свойства scrollbar с префиксом -webkit в сочетании с обычными свойствами ширины scrollbar-width и цвета scrollbar-color.


Хочу сказать про плагин postcss-scrollbar - он создает свойства скроллбара с префиксом -webkit из стандартных свойств. Это дает возможность получить получить кросс-браузерные стили, например через такой код:

.scroll-container {
overflow: auto;
scrollbar-width: thin;
scrollbar-color: hsl(0 0% 50%);
/* postcss-scrollbar will add the -webkit version automatically! */
}


Темы и scrollbar


На многих сайтах при переключении на темный режим скроллбары "застревают" в белом

Полоса прокрутки (scrollbar) - один из самых неиспользуемых элементов в веб-разработке. Как с ним работать? Программирование, IT, Разработка, Web-программирование, Web, Веб-дизайн, CSS, Длиннопост

Есть отличные свойства - color-scheme, через которые это можно исправить. Но юзать их вам придется не только в ситуациях с полосой прокрутки. Можете почитать об этом более подробно здесь - https://web.dev/color-scheme/


html {
/* defer to OS preference */
color-scheme: dark light;
/* override, assuming the theme toggler sets a data-theme attribute */
&[data-theme=light] { color-scheme: light; }
&[data-theme=dark] { color-scheme: dark; }
}


Как предотвратить смещение верстки


При использовании overflow: auto может возникнуть проблема - смещение верстки. Решить её поможет overflow: overlay - скроллбар никогда не будет занимать место и/или overflow: scroll - полоса прокрутки всегда будет на месте


А с помощью scrollbar-gutter: stable вы можете "сказать" браузеру, чтобы он зарезервировал место для полос прокрутки.


.scroll-container {
overflow: scroll;
@supports (scrollbar-gutter: stable) {
overflow: auto;
scrollbar-gutter: stable;
}
}

На этом все, прокачивайте свои скроллбары, пишите: был ли у вас опыт в их кастомизации?

Показать полностью 2
[моё] Программирование IT Разработка Web-программирование Web Веб-дизайн CSS Длиннопост
30
13
Web.Study
Web.Study
2 года назад
Лига программистов

Как использовать математические функции CSS⁠⁠

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перевод статьи: How to Use CSS Math Functions: calc, min, max, clamp
Автор: Alex Ivanovs

Примечание: примеры кода лучше всего просматривать на codepen. Приятного чтения!

Логические функции CSS calc(), clamp(), min() и max() поддерживаются всеми современными веб-браузерами. Но, несмотря на то, что они легко доступны, простой поиск на GitHub говорит нам о том, что внедрение этих функций идет медленно. Давайте выясним.

Я знаю, что вы могли подумать: "Математика?! Фу, с глаз моих долой". Но спросите себя — хватит ли у вас силы воли противиться удовлетворению от идеально выровненных вложенных друг в друга контейнеров?

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

Таким образом, это будет предпосылкой для этого урока.

Update: Мне удалось написать подробное руководство по центрированию элементов в CSS.

Я сосредоточусь на теме математических функций CSS в контексте достижения различных результатов компоновки. Например, Как создать адаптивный контейнер с помощью нескольких строк CSS, как добавить адаптивный padding и как заставить сайдбар вести себя как сайдбар.

Давайте взглянем.

calc()

Функция calc() поддерживает четыре арифметические операции: сложение (+), вычитание (-), умножение (*) и деление (/). Эта функция в основном используется для расчета динамической ширины и высоты контейнера для создания адаптивного layout.


Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

И вот такой результат:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Но calc() больше всего выделяется, когда он используется для упорядочивания элементов с учетом определенного значения. Как правило, адаптивный дизайн достигается путем поиска конкретных точек и последующего индивидуального написания их логики. С calc() — мы можем добиться адаптивного layout только с одной спецификацией, что делает его намного более удобным.

Давайте рассмотрим конкретный пример использования display: flex;. Наша цель — создать рядом 3 элемента, зависящих от ширины контейнера (100%). Мы также хотим добавить отступ в 30 пикселей между каждым элементом, и, конечно же, нам необходимо, чтобы они были отзывчивыми!

Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перейдите на сайт оригинальной статьи (ссылка в начале статьи через "How to Use CSS Math Functions: calc, min, max, clamp") или на codepen (ссылка через "пример кода"), и там вы сможете изменить размер экрана, чтобы увидеть, как это работает.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Поскольку мы хотим иметь отступ в 30px между каждым элементом, мы вычитаем 90 пикселей из ширины контейнера (100%) и делим его на 3, чтобы указать, сколько элементов у нас есть.

Когда вы измените размер приведенного выше результата, вы заметите, что все элементы соблюдают соответствующий отступ, оставаясь при этом чувствительными к ширине контейнера. Неплохо.

min()


Функция min() используется для установки наименьшего допустимого значения. Она принимает два разных значения, разделенных запятой, и поддерживает арифметические выражения.

Допустим, вы указали font-size: min(25px,1vw); — в этом примере font-size никогда не будет больше 25 пикселей и будет уменьшаться до 1vw в зависимости от размера viewport.

Мы также можем использовать min() для управления шириной элементов контейнера.

Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перейдите на сайт оригинальной статьи (ссылка в начале статьи через "How to Use CSS Math Functions: calc, min, max, clamp") или на codepen (ссылка через "пример кода"), попробуйте изменить размер экрана.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

В этом контексте div элемент внутри нашего контейнера не может превышать 800 пикселей в ширину, несмотря на то, что контейнер имеет максимальную ширину 1000 пикселей.

max()


Функция max() позволяет нам сделать прямо противоположное. Из двух значений, которые мы указываем внутри max() — большее из них будет иметь приоритет.


Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перейдите на сайт оригинальной статьи (ссылка в начале статьи через "How to Use CSS Math Functions: calc, min, max, clamp") или на codepen (ссылка через "пример кода"), попробуйте изменить размер экрана  на меньший, чтобы посмотреть, что произойдет.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Как видите, контейнер соблюдает width: 100%;, но не опускается ниже указанной отметки 200 пикселей, так как это самое большое значение для контейнера.

Функция max() особенно полезна при применении адаптивных margins. Как правило, когда вы используете множество мелких элементов в макете, они загромождают экран после изменения размера. С помощью max() мы можем установить приоритет для определенного margin, чтобы учесть ширину контейнера.


Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перейдите на сайт оригинальной статьи (ссылка в начале статьи через "How to Use CSS Math Functions: calc, min, max, clamp") или на codepen (ссылка через "пример кода"), попробуйте изменить размер экрана на меньший, чтобы посмотреть на это в действий.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Как видите, несмотря на изменение ширины viewport, кнопки всегда сохраняют свои поля в 4 пикселя.

clamp()


Функция clamp() используется для определения допустимого диапазона различных значений элемента макета: minimum, preferred и maximum. Чаще всего clamp() используется для установки диапазона допустимых значений в типографике, чтобы создать эффект fluid typography.

По сути, это кульминация функций min() и max().

Например:


font-size: clamp(1rem, 4vw + 1rem, 4rem);

И вот как это выглядит:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

В этом контексте, мы стилизуем наш заголовок h2 с минимальным значением 1rem, максимальным 4rem и устанавливаем предпочтительный размер 4vw (единицы viewport) + 1rem. Как вы уже заметили, из приведенного выше демо, по мере изменения области просмотра изменяется и размер шрифта заголовка.

На этом мы заканчиваем знакомство с наиболее широко поддерживаемыми математическими функциями в CSS.

Следующий раздел полностью посвящен примерам и различным вариантам использования этих функций. В целом, мы сосредоточены на создании адаптивных элементов дизайна, которые в противном случае пришлось бы писать с помощью медиа-запросов.

Создание адаптивного sidebar с помощью Grid


Можете ли вы реализовать полнофункциональный адаптивный sidebar всего двумя строками CSS? Конечно.


Для этого демо мы создадим адаптивный sidebar, используя display: grid; и настроим отзывчивость с помощью grid-template-columns. В частности, мы будем использовать функции fit-content и minmax() для установки наших ограничений.


Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перейдите на сайт оригинальной статьи (ссылка в начале статьи через "How to Use CSS Math Functions: calc, min, max, clamp") или на codepen (ссылка через "пример кода"), попробуйте изменить размер экрана, чтобы посмотреть, что произойдет.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Давайте разберемся, что здесь происходит.


Сначала, мы применяем fit-content, чтобы объявить предпочтительный размер нашего sidebar. Значение, которое мы указываем здесь, будет либо увеличивать боковую панель (в зависимости от размера viewport), либо уменьшать ее на небольших экранах. Все время учитывая количество контента, которое у вас есть на боковой панели.


После этого мы применяем minmax(), потому что мы не хотим, чтобы боковая панель перекрывалась областью контента на странице. В нашем случае для параметра установлено значение 55vw, которое будет использоваться для мобильного дисплея, и 35ch, которое будет использоваться для больших viewports. И, наконец, мы применяем the Grid-specific fraction unit, чтобы заполнить пространство, когда это позволяет viewport.

Применение адаптивного Gap для Flexbox Layouts


Это аналогичный пример адаптивного padding, который мы рассматривали ранее. Но для этого демо мы используем flexbox и свойство gap вместе с clamp().


Пример кода:

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Перейдите на сайт оригинальной статьи (ссылка в начале статьи через "How to Use CSS Math Functions: calc, min, max, clamp") или на codepen (ссылка через "пример кода"), попробуйте поиграть с размером.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Указав gap: clamp(5px, 1vw, 25px); мы говорим браузеру адаптировать gap между каждой колонкой в зависимости от размера viewport. Итак, если размер окна превышает 1vw — gap увеличивается до 25 пикселей, тогда как маленький viewport уменьшит его до 5 пикселей (например, на мобильных устройствах).


Кстати, вы могли заметить, что я использовал интересное свойство для центрирования блоков, это place-content: center;. Это сокращенное свойство, которое поддерживает позиционирование содержимого в различных направлениях. Подробнее об этом можно прочитать на MDN.

Can I Use: Поддержка тут как тут


Если мы посмотрим на данные Can I Use для математических функций — поддержка явно есть. IE их не поддерживает, но мы также знаем, что IE прекращает работу. В июне 2022 года, если быть точным.

Как использовать математические функции CSS CSS, Frontend, IT, Программирование, HTML, Гифка, Длиннопост

Использование математических функции CSS с переменными


Итак, одна из вещей, которая не была затронута в этом руководстве, — это использование переменных CSS вместе с различными функциями. Мои рассуждения довольно просты, это практическое введение в использование математических функций для адаптивного дизайна.


Я не следую style guide и не работаю над фреймворком.


Но вполне возможно использовать объявления переменных для достижения еще больших результатов, особенно для сложных структур layout.

Заключение


Были бы вы рады попробовать некоторые из этих концепций в своем следующем проекте?


Я должен сказать, что CSS прошел долгий путь с начала 2010-х годов. На самом деле, если мы сможем делать большую часть наших адаптивных стилей без медиа-запросов, это привлечет еще больше разработчиков, которые хотят писать код и не беспокоиться о совместимости между различными устройствами.

Спасибо за прочтение этой статьи!

Наш телеграм https://t.me/havaevau_webstudy

Показать полностью 16
CSS Frontend IT Программирование HTML Гифка Длиннопост
5
18
Web.Study
Web.Study
2 года назад
Лига программистов

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок⁠⁠

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок Программирование, IT, CSS, Веб-разработка, Frontend, HTML, Гифка, Длиннопост

Какая его роль?


Прелоадер — это небольшая анимация, которую человек видит когда заходит на веб-страницу, другими словами — это индикатор загрузки.


Это значимый элемент в веб-разработке с точки зрения юзерфрендли. Если человек заходит на "тяжёлый сайт", напичканный скриптами, файлами и т.п., ему нужно сказать что "всё норм, сайт загружается, подожди".


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



1. Лесенка загрузки

Исходный код на Codepen - https://codepen.io/ispal/pen/mVaaJe

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок Программирование, IT, CSS, Веб-разработка, Frontend, HTML, Гифка, Длиннопост

2. Прелоадер на CSS с использованием sass map для определения цвета

Исходный код на Codepen - https://codepen.io/hexagoncircle/pen/eZawWv

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок Программирование, IT, CSS, Веб-разработка, Frontend, HTML, Гифка, Длиннопост

3. А как вам такое?

Исходный код на Codepen - https://codepen.io/derekmorash/pen/grvOZx

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок Программирование, IT, CSS, Веб-разработка, Frontend, HTML, Гифка, Длиннопост

4. Этот прелоадер был сделан для веб-приложения из сферы здравоохранения

Исходный код на Codepen - https://codepen.io/chrissamuels/pen/WNybqm

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок Программирование, IT, CSS, Веб-разработка, Frontend, HTML, Гифка, Длиннопост

5. Сразу несколько прелоадеров, сделанных с помощью SVG анимации

Исходный код на Codepen - https://codepen.io/nikhil8krishnan/pen/rVoXJa

Прелоадер - важный элемент в веб-разработке. 5 примеров, которые сделает даже новичок Программирование, IT, CSS, Веб-разработка, Frontend, HTML, Гифка, Длиннопост

Телеграм - https://t.me/havaevau_webstudy

Показать полностью 5
[моё] Программирование IT CSS Веб-разработка Frontend HTML Гифка Длиннопост
8
18
Web.Study
Web.Study
2 года назад
Лига программистов

Да кто этот ваш ООП и зачем он нужен? Шпаргалка для начинающих, 7 главных заповедей⁠⁠

Начнем с определения


Объектно-ориентированное программирование (ООП) — это подход, при котором программа рассматривается как набор объектов, взаимодействующих друг с другом. У каждого есть свойства и поведение. ООП ускоряет написание кода и делает его более читаемым.

Данный подход актуален во всех языках программирования и будет полезен разработчику как на Java Script, так и на Typescript, и вообще всем  разработчикам на C-подобных языках.

Да кто этот ваш ООП и зачем он нужен? Шпаргалка для начинающих, 7 главных заповедей Программирование, Javascript, Программист, IT, Ооп, CSS, Длиннопост

Зачем нужен ООП?


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


Пример программы на языке typescript в процедурном стиле:


Есть две переменные это ширина и высота, есть функция, которая ширину и высоту принимает аргументами и по итогу эта функция возвращает результат умножения ширины на высоту, то есть площадь прямоугольника. По итогу вызвав эту функцию с какими-то данными, мы можем получить площадь прямоугольника.


const width = 5;
const height = 10;
function calcRectArea(width; height) {
return width * height;
}
calcRectArea(width, height)

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

Да кто этот ваш ООП и зачем он нужен? Шпаргалка для начинающих, 7 главных заповедей Программирование, Javascript, Программист, IT, Ооп, CSS, Длиннопост

Шпаргалка по принципам ООП


Главное


- Инкапсулируйте все, что может изменяться;

- Уделяйте больше внимания интерфейсам, а не их реализациям;

- Каждый класс в вашем приложении должен иметь только одно назначение;

- Классы — это их поведение и функциональность.


Базовые принципы ООП


- Абстракция — отделение концепции от ее экземпляра;

- Полиморфизм — реализация задач одной и той же идеи разными способами;

- Наследование — способность объекта или класса базироваться на другом объекте или классе. Это главный механизм для повторного использования кода. Наследственное отношение классов четко определяет их иерархию;

- Инкапсуляция — размещение одного объекта или класса внутри другого для разграничения доступа к ним.


1. Используйте следующее вместе с наследованием


- Делегация — перепоручение задачи от внешнего объекта внутреннему;

- Композиция — включение объектом-контейнером объекта-содержимого и управление его поведением; последний не может существовать вне первого;

- Агрегация — включение объектом-контейнером ссылки на объект-содержимое; при уничтожении первого последний продолжает существование.


2. Не повторяйся (Don’t repeat yourself — DRY)


Избегайте повторного написания кода, вынося в абстракции часто используемые задачи и данные. Каждая часть вашего кода или информации должна находиться в единственном числе в единственном доступном месте. Это один из принципов читаемого кода.


3. Принцип единственной обязанности


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


4. Принцип открытости/закрытости


Программные сущности должны быть открыты для расширения, но закрыты для изменений.


5. Принцип подстановки Барбары Лисков


Методы, использующие некий тип, должны иметь возможность использовать его подтипы, не зная об этом.


6. Принцип разделения интерфейсов


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


7. Принцип инверсии зависимостей


Система должна конструироваться на основе абстракций «сверху вниз»: не абстракции должны формироваться на основе деталей, а детали должны формироваться на основе абстракций.



Применяли ли вы данный подход на практике? Строчите в комментарии

Показать полностью 2
[моё] Программирование Javascript Программист IT Ооп CSS Длиннопост
55
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии