<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Вёрстка сайтов | HTML, CSS, JS</title><subtitle>На этом канале я выкладываю структурированные, обучающие уроки и материалы по вёрстке. </subtitle><author><name>Вёрстка сайтов | HTML, CSS, JS</name></author><id>https://teletype.in/atom/free_html_lessons</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/free_html_lessons?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/free_html_lessons?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-29T21:25:17.591Z</updated><entry><id>free_html_lessons:cgPfFRYcW_b</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/cgPfFRYcW_b?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Всплытие и погружение js</title><published>2023-09-17T20:22:27.487Z</published><updated>2023-09-17T20:22:27.487Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/d0/08/d0082b9a-732c-4bbc-99b7-e3f2849d43d2.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/16/d0/16d0b31e-112d-481b-8d4b-6732a74a291c.png&quot;&gt;Всплытие (bubbling) и погружение (capturing) - это два механизма обработки событий в JavaScript, которые происходят во время взаимодействия пользователя с веб-страницей. Эти механизмы связаны с распространением событий внутри DOM-структуры.</summary><content type="html">
  &lt;figure id=&quot;QeTd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/16/d0/16d0b31e-112d-481b-8d4b-6732a74a291c.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;NiHk&quot;&gt;Всплытие (bubbling) и погружение (capturing) - это два механизма обработки событий в JavaScript, которые происходят во время взаимодействия пользователя с веб-страницей. Эти механизмы связаны с распространением событий внутри DOM-структуры.&lt;/p&gt;
  &lt;p id=&quot;DUck&quot;&gt;&lt;strong&gt;Всплытие (Bubbling):&lt;/strong&gt;&lt;br /&gt;Когда пользователь выполняет какое-либо действие (например, клик или наведение мыши) на элементе, событие начинает всплывать от самого вложенного элемента к родительским элементам. Другими словами, событие сначала обрабатывается на самом внутреннем элементе, а затем поочередно на его родителях вверх по иерархии DOM.&lt;/p&gt;
  &lt;p id=&quot;FNUX&quot;&gt;Пример:&lt;br /&gt;&amp;#x60;&amp;#x60;&amp;#x60;javascript&lt;br /&gt;&amp;lt;div id=&amp;quot;parent&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;button id=&amp;quot;child&amp;quot;&amp;gt;Нажми меня&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
  &lt;p id=&quot;GpRJ&quot;&gt;&amp;lt;script&amp;gt;&lt;br /&gt;  const parent = document.getElementById(&amp;#x27;parent&amp;#x27;);&lt;br /&gt;  const child = document.getElementById(&amp;#x27;child&amp;#x27;);&lt;/p&gt;
  &lt;p id=&quot;L5eX&quot;&gt;  parent.addEventListener(&amp;#x27;click&amp;#x27;, () =&amp;gt; {&lt;br /&gt;    console.log(&amp;#x27;Событие на родителе&amp;#x27;);&lt;br /&gt;  });&lt;/p&gt;
  &lt;p id=&quot;WuPC&quot;&gt;  child.addEventListener(&amp;#x27;click&amp;#x27;, () =&amp;gt; {&lt;br /&gt;    console.log(&amp;#x27;Событие на потомке&amp;#x27;);&lt;br /&gt;  });&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;#x60;&amp;#x60;&amp;#x60;&lt;/p&gt;
  &lt;p id=&quot;mS60&quot;&gt;Если пользователь кликнет на кнопке &amp;quot;Нажми меня&amp;quot;, то сначала будет выведено &amp;quot;Событие на потомке&amp;quot;, а затем &amp;quot;Событие на родителе&amp;quot;.&lt;/p&gt;
  &lt;p id=&quot;mssL&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;v3ic&quot;&gt;&lt;strong&gt;Погружение (Capturing):&lt;/strong&gt;&lt;br /&gt;В отличие от всплытия, при использовании механизма погружения событие сначала поймается на самом внешнем элементе (например, на корневом элементе документа) и затем будет перехвачено на элементах вложенной структуры. Событие движется &amp;quot;сверху вниз&amp;quot; по иерархии DOM.&lt;/p&gt;
  &lt;p id=&quot;Aoz9&quot;&gt;Пример:&lt;br /&gt;&amp;#x60;&amp;#x60;&amp;#x60;javascript&lt;br /&gt;&amp;lt;div id=&amp;quot;parent&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;button id=&amp;quot;child&amp;quot;&amp;gt;Нажми меня&amp;lt;/button&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
  &lt;p id=&quot;7hUc&quot;&gt;&amp;lt;script&amp;gt;&lt;br /&gt;  const parent = document.getElementById(&amp;#x27;parent&amp;#x27;);&lt;br /&gt;  const child = document.getElementById(&amp;#x27;child&amp;#x27;);&lt;/p&gt;
  &lt;p id=&quot;wPUW&quot;&gt;  parent.addEventListener(&amp;#x27;click&amp;#x27;, () =&amp;gt; {&lt;br /&gt;    console.log(&amp;#x27;Событие на родителе&amp;#x27;, { capture: true });&lt;br /&gt;  }, true);&lt;/p&gt;
  &lt;p id=&quot;14YN&quot;&gt;  child.addEventListener(&amp;#x27;click&amp;#x27;, () =&amp;gt; {&lt;br /&gt;    console.log(&amp;#x27;Событие на потомке&amp;#x27;, { capture: true });&lt;br /&gt;  }, true);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;#x60;&amp;#x60;&amp;#x60;&lt;/p&gt;
  &lt;p id=&quot;r0eT&quot;&gt;Если пользователь кликнет на кнопке &amp;quot;Нажми меня&amp;quot;, то сначала будет выведено &amp;quot;Событие на родителе&amp;quot; (с указанием &amp;#x60;{ capture: true }&amp;#x60;), а затем &amp;quot;Событие на потомке&amp;quot; (с указанием &amp;#x60;{ capture: true }&amp;#x60;).&lt;/p&gt;
  &lt;p id=&quot;5enh&quot;&gt;**Как выбрать между всплытием и погружением**:&lt;br /&gt;Большинство событий в DOM используют механизм всплытия по умолчанию. Вы можете использовать фазу захвата, указав третий аргумент &amp;#x60;true&amp;#x60; при добавлении слушателя события. Выбор между этими механизмами зависит от конкретных требований вашего проекта.&lt;/p&gt;
  &lt;p id=&quot;Cjfc&quot;&gt;- Всплытие обычно удобно, если вам нужно обработать событие на конечном элементе и затем проследить его распространение вверх для выполнения других действий.&lt;/p&gt;
  &lt;p id=&quot;HkRy&quot;&gt;- Погружение может быть полезным, если вам нужно перехватить событие на более высоком уровне в иерархии DOM, прежде чем оно достигнет конечного элемента.&lt;/p&gt;
  &lt;p id=&quot;TUGi&quot;&gt;Обратите внимание, что не все события поддерживают оба механизма (всплытие и погружение). Например, события &amp;#x60;focus&amp;#x60; и &amp;#x60;blur&amp;#x60; используют только механизм всплытия.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:lotpeT-JOXA</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/lotpeT-JOXA?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Полезные javascript библиотеки 3 часть</title><published>2023-09-17T20:16:14.842Z</published><updated>2023-09-17T20:16:14.842Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/67/0e/670e9937-6732-4b1c-956f-ea715156b63e.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/84/4b/844be505-885e-4dbc-b4ff-c2caaa7c3df2.png&quot;&gt;</summary><content type="html">
  &lt;figure id=&quot;QaGz&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/84/4b/844be505-885e-4dbc-b4ff-c2caaa7c3df2.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;4t4e&quot;&gt;
    &lt;li id=&quot;zAK7&quot;&gt;D3.js: Эта библиотека предназначена для визуализации данных. Она позволяет строить сложные графики и диаграммы.&lt;/li&gt;
    &lt;li id=&quot;1tIN&quot;&gt;Lodash: Это JavaScript-библиотека, которая предоставляет множество полезных функций для работы с массивами, объектами и коллекциями.&lt;/li&gt;
    &lt;li id=&quot;tSs4&quot;&gt;Moment.js: Это библиотека, предназначенная для работы с датой и временем.&lt;/li&gt;
    &lt;li id=&quot;TLCS&quot;&gt;Svelte: Это современный фреймворк, который позволяет создавать реактивные пользовательские интерфейсы без лишнего кода и с хорошей производительностью.&lt;/li&gt;
    &lt;li id=&quot;ew59&quot;&gt;React - библиотека для создания пользовательских интерфейсов и управления состоянием.&lt;/li&gt;
    &lt;li id=&quot;PDDP&quot;&gt;Angular - еще один фреймворк от Google для создания веб приложений. Имеет большую экосистему и множество дополнений.&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>free_html_lessons:6uRiI-3KROT</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/6uRiI-3KROT?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Полезные js библиотеки 2 часть</title><published>2023-09-10T21:18:48.936Z</published><updated>2023-09-10T21:18:48.936Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/67/0e/670e9937-6732-4b1c-956f-ea715156b63e.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/84/4b/844be505-885e-4dbc-b4ff-c2caaa7c3df2.png&quot;&gt;Конечно, вот еще несколько полезных JavaScript-библиотек для верстки:</summary><content type="html">
  &lt;figure id=&quot;tZJi&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/84/4b/844be505-885e-4dbc-b4ff-c2caaa7c3df2.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;R4Vc&quot;&gt;Конечно, вот еще несколько полезных JavaScript-библиотек для верстки:&lt;/p&gt;
  &lt;p id=&quot;pLZo&quot;&gt;1. Flickity: Эта библиотека предоставляет мощные инструменты для создания каруселей и галерей изображений с поддержкой жестов и адаптивным дизайном.&lt;/p&gt;
  &lt;p id=&quot;2DO4&quot;&gt;2. ScrollReveal: ScrollReveal делает прокрутку страницы более интересной и динамичной. Она позволяет создавать анимации, которые срабатывают при прокрутке к определенным элементам.&lt;/p&gt;
  &lt;p id=&quot;2JHk&quot;&gt;3. Typed.js: Если вам нужно добавить анимированный текст, который появляется как если бы он был набран на машинке, Typed.js предоставляет простой способ для этого.&lt;/p&gt;
  &lt;p id=&quot;Dq1t&quot;&gt;4. Dragula: Эта библиотека облегчает создание перетаскиваемых списков и контейнеров, что полезно для интерфейсов, где пользователь может изменять порядок элементов.&lt;/p&gt;
  &lt;p id=&quot;ZIB9&quot;&gt;5. Barba.js: Эта библиотека позволяет создавать плавные переходы между страницами вашего сайта без полной перезагрузки страницы. Это помогает улучшить пользовательский опыт.&lt;/p&gt;
  &lt;p id=&quot;eY8S&quot;&gt;6. Clipboard.js: Clipboard.js облегчает копирование текста в буфер обмена при клике на элемент. Это полезно для кнопок &amp;quot;Скопировать&amp;quot; и подобных функций.&lt;/p&gt;
  &lt;p id=&quot;jQIF&quot;&gt;7. Lozad.js: Эта библиотека облегчает загрузку изображений при прокрутке страницы. Она помогает ускорить начальную загрузку страницы.&lt;/p&gt;
  &lt;p id=&quot;5y6s&quot;&gt;8. Tippy.js: Tippy.js помогает создать красивые всплывающие подсказки с множеством настроек и анимаций.&lt;/p&gt;
  &lt;p id=&quot;AEMg&quot;&gt;9. Cleave.js: Cleave.js - это библиотека для автоматического форматирования ввода, такого как номера телефонов или даты.&lt;/p&gt;
  &lt;p id=&quot;ktEW&quot;&gt;Выбор конкретной библиотеки зависит от потребностей вашего проекта и вашего уровня опыта в разработке. Убедитесь, что библиотека активно поддерживается и обновляется, и она соответствует целям вашего проекта.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:4TzkpMSQsXj</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/4TzkpMSQsXj?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Полезные js библиотеки 1 часть</title><published>2023-09-10T21:16:42.097Z</published><updated>2023-09-10T21:16:42.097Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/16/5e/165e53c3-7ffc-49f7-ac21-cd8ef92c4eea.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/16/1e/161e4807-7729-4c9c-9d7c-d43e102d101b.png&quot;&gt;Существует множество полезных JavaScript-библиотек, которые упрощают и улучшают процесс верстки веб-сайтов. Вот несколько таких библиотек:</summary><content type="html">
  &lt;figure id=&quot;O3GV&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/16/1e/161e4807-7729-4c9c-9d7c-d43e102d101b.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;omIR&quot;&gt;Существует множество полезных JavaScript-библиотек, которые упрощают и улучшают процесс верстки веб-сайтов. Вот несколько таких библиотек:&lt;/p&gt;
  &lt;p id=&quot;w9Ei&quot;&gt;1. Animate.css: Эта библиотека содержит большое количество анимаций CSS, которые могут быть легко добавлены к вашим элементам. Это хороший способ сделать ваш сайт более интерактивным.&lt;/p&gt;
  &lt;p id=&quot;wpyY&quot;&gt;2. ScrollMagic: ScrollMagic - это библиотека для создания анимаций, связанных с прокруткой страницы. Она позволяет создавать интересные эффекты, такие как анимированные фоновые изображения и параллакс.&lt;/p&gt;
  &lt;p id=&quot;sPhu&quot;&gt;3. GreenSock Animation Platform (GSAP): GSAP - это мощная библиотека для создания анимаций с высокой производительностью. Она поддерживает разнообразные типы анимаций и включает инструменты для управления временем анимации.&lt;/p&gt;
  &lt;p id=&quot;Cya4&quot;&gt;4. Three.js: Если вам нужно создать 3D-графику на вашем сайте, Three.js - это библиотека, которую следует рассмотреть. Она упрощает создание и взаимодействие с 3D-объектами на веб-странице.&lt;/p&gt;
  &lt;p id=&quot;m4ss&quot;&gt;5. AOS (Animate on Scroll): Эта библиотека обеспечивает простой способ добавления анимаций к элементам при прокрутке страницы. Это может сделать ваш сайт более интересным и привлекательным.&lt;/p&gt;
  &lt;p id=&quot;fkfJ&quot;&gt;6. Chart.js: Если вам нужно встроить графику и диаграммы, Chart.js предоставляет простой способ создания интерактивных графиков на вашем сайте.&lt;/p&gt;
  &lt;p id=&quot;Dx8g&quot;&gt;7. Masonry: Библиотеки, такие как Masonry, позволяют создавать динамические сетки, в которых элементы автоматически распределяются по доступному пространству.&lt;/p&gt;
  &lt;p id=&quot;TLJe&quot;&gt;8. Typed.js: Эта библиотека добавляет анимированный текст, который появляется как если бы он был набран на машинке. Это полезно для создания визуально привлекательных заголовков и сообщений.&lt;/p&gt;
  &lt;p id=&quot;ONJk&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;92h6&quot;&gt;Выбор библиотеки зависит от конкретных потребностей вашего проекта. Убедитесь, что библиотека совместима с вашими целями и требованиями, и что она помогает ускорить и упростить процесс верстки вашего веб-сайта.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:dgz9geYzzWe</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/dgz9geYzzWe?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Полезные css функции 2 часть</title><published>2023-09-10T21:10:32.583Z</published><updated>2023-09-10T21:10:32.583Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/8f/f0/8ff0d26e-af02-46b4-9344-a38b424f73fb.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/82/9c/829cc5d1-bf78-42c7-a12f-85f20dea683b.png&quot;&gt;Продолжим с дополнительными полезными CSS функциями:</summary><content type="html">
  &lt;figure id=&quot;9Ymr&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/82/9c/829cc5d1-bf78-42c7-a12f-85f20dea683b.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lGn4&quot;&gt;Продолжим с дополнительными полезными CSS функциями:&lt;/p&gt;
  &lt;p id=&quot;OUSB&quot;&gt;1. &amp;#x60;clip-path()&amp;#x60;: Эта функция позволяет создавать различные обрезанные (клIPPING) формы для элементов. Вы можете создавать круги, многоугольники и другие интересные формы. Пример: &amp;#x60;clip-path: polygon(0 0, 100% 0, 100% 75%, 0 100%);&amp;#x60; создаст треугольник.&lt;/p&gt;
  &lt;p id=&quot;qPRF&quot;&gt;2. &amp;#x60;text-overflow()&amp;#x60;: Используйте эту функцию для обрезки текста, который не помещается в заданный контейнер. Вы можете настроить, как будет выглядеть обрезанный текст, например, добавить многоточие. Пример: &amp;#x60;text-overflow: ellipsis;&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;JMhn&quot;&gt;3. &amp;#x60;filter()&amp;#x60;: С помощью этой функции можно применять фильтры к изображениям, таким как размытие, контрастность и насыщенность. Пример: &amp;#x60;filter: blur(5px);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;CiDu&quot;&gt;4. &amp;#x60;backdrop-filter()&amp;#x60;: Эта функция подобна &amp;#x60;filter()&amp;#x60;, но применяется к заднему фону элемента, создавая эффект размытия заднего фона. Пример: &amp;#x60;backdrop-filter: blur(5px);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;9lfd&quot;&gt;5. &amp;#x60;object-fit&amp;#x60;: Это свойство позволяет управлять тем, как изображение вписывается в свой контейнер. Например, вы можете сделать изображение квадратным и обрезать его или увеличить/уменьшить, чтобы оно полностью заполнило контейнер. Пример: &amp;#x60;object-fit: cover;&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;PCJL&quot;&gt;6. &amp;#x60;will-change&amp;#x60;: Это свойство сообщает браузеру о том, что элемент будет изменяться, и оптимизирует производительность анимации. Пример: &amp;#x60;will-change: transform;&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;0b5r&quot;&gt;7. &amp;#x60;shape-outside&amp;#x60;: Это свойство определяет область, которая окружает элемент и форму которой принимает текст. Это полезно для создания текстовых обтеканий изображений или других элементов. Пример: &amp;#x60;shape-outside: circle(50%);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;PXZa&quot;&gt;8. &amp;#x60;counter(): Эта функция используется в комбинации с &amp;#x60;content&amp;#x60; для создания автоматически генерируемых номеров или маркеров. Пример: &amp;#x60;content: counter(chapter);&amp;#x60;.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:2pPBeIlqGnV</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/2pPBeIlqGnV?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Полезные сss функции 1 часть</title><published>2023-09-10T21:08:48.136Z</published><updated>2023-09-10T21:08:48.136Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/2e/23/2e230b19-f4fe-4639-9d40-1463edb1b912.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/41/93/41936632-1fa0-4e1c-bbb4-93c7829286a4.png&quot;&gt;CSS предоставляет множество полезных функций, которые можно использовать для создания более гибких и динамичных стилей. Вот несколько полезных CSS функций:</summary><content type="html">
  &lt;figure id=&quot;gjNP&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/41/93/41936632-1fa0-4e1c-bbb4-93c7829286a4.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;uuq9&quot;&gt;CSS предоставляет множество полезных функций, которые можно использовать для создания более гибких и динамичных стилей. Вот несколько полезных CSS функций:&lt;/p&gt;
  &lt;p id=&quot;OIlq&quot;&gt;1. &amp;#x60;calc()&amp;#x60;: Эта функция позволяет выполнять арифметические операции прямо в CSS. Например, вы можете использовать &amp;#x60;calc()&amp;#x60; для вычисления ширины элемента на основе других значений. Пример: &amp;#x60;width: calc(100% - 20px);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;2QLk&quot;&gt;2. &amp;#x60;var()&amp;#x60;: Функция &amp;#x60;var()&amp;#x60; используется для определения и использования пользовательских CSS переменных (переменных). Она позволяет создавать динамические стили, что делает код более гибким и управляемым. Пример: &amp;#x60;color: var(--primary-color);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;KIBa&quot;&gt;3. &amp;#x60;linear-gradient()&amp;#x60;: С помощью этой функции можно создавать градиенты. Вы можете управлять цветами и направлением градиента. Пример: &amp;#x60;background: linear-gradient(to right, red, blue);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;R9Fm&quot;&gt;4. &amp;#x60;url()&amp;#x60;: Функция &amp;#x60;url()&amp;#x60; используется для вставки изображений, шрифтов и других ресурсов. Например, &amp;#x60;background-image: url(&amp;#x27;image.jpg&amp;#x27;);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;oU3m&quot;&gt;5. &amp;#x60;rgb()&amp;#x60; и &amp;#x60;rgba()&amp;#x60;: С помощью этих функций вы можете устанавливать цвета, используя значения красного, зеленого и синего (RGB) или добавлять прозрачность с помощью &amp;#x60;rgba()&amp;#x60;. Примеры: &amp;#x60;color: rgb(255, 0, 0);&amp;#x60;, &amp;#x60;background-color: rgba(0, 0, 255, 0.5);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;oeKk&quot;&gt;6. &amp;#x60;rotate()&amp;#x60;: Функция &amp;#x60;rotate()&amp;#x60; позволяет вращать элементы. Вы можете указать угол в градусах, на который нужно повернуть элемент. Пример: &amp;#x60;transform: rotate(45deg);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;n0de&quot;&gt;7. &amp;#x60;scale()&amp;#x60;: Эта функция масштабирует элементы. Вы можете увеличивать или уменьшать элемент в горизонтальном и вертикальном направлениях. Пример: &amp;#x60;transform: scale(1.2);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;0jjj&quot;&gt;8. &amp;#x60;translate()&amp;#x60;: Функция &amp;#x60;translate()&amp;#x60; используется для перемещения элементов. Она может сдвигать элементы по горизонтали и вертикали. Пример: &amp;#x60;transform: translate(10px, 20px);&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;BSV6&quot;&gt;9. &amp;#x60;box-shadow()&amp;#x60;: Эта функция добавляет тень к элементам. Вы можете настраивать цвет, размытие и смещение тени. Пример: &amp;#x60;box-shadow: 3px 3px 5px #888;&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;7IWM&quot;&gt;Это только несколько примеров полезных CSS функций. CSS предоставляет множество других функций и возможностей для создания стилей, и выбор функции зависит от ваших конкретных потребностей и задачи.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:7vbehXGp6RW</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/7vbehXGp6RW?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Задача: Список задач (To-Do List)</title><published>2023-09-10T21:03:42.358Z</published><updated>2023-09-10T21:03:42.358Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/ff/74/ff740229-98da-48fa-9f61-1d639bb088b7.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/f0/98/f098071c-33c0-4b62-b5ed-023d90b5ca80.png&quot;&gt;Ваша задача - создать интерактивный список задач (To-Do List), который позволит пользователям добавлять, удалять и отмечать задачи как выполненные.</summary><content type="html">
  &lt;figure id=&quot;QWSp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f0/98/f098071c-33c0-4b62-b5ed-023d90b5ca80.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yUsK&quot;&gt;Ваша задача - создать интерактивный список задач (To-Do List), который позволит пользователям добавлять, удалять и отмечать задачи как выполненные.&lt;/p&gt;
  &lt;p id=&quot;oKjN&quot;&gt;Требования:&lt;/p&gt;
  &lt;p id=&quot;KRAw&quot;&gt;1. Создайте текстовое поле и кнопку для добавления новых задач.&lt;/p&gt;
  &lt;p id=&quot;Ddhh&quot;&gt;2. После добавления задачи, она должна появиться в списке задач.&lt;/p&gt;
  &lt;p id=&quot;ais9&quot;&gt;3. Добавьте кнопку &amp;quot;Удалить&amp;quot; для каждой задачи, чтобы пользователь мог удалить ее из списка.&lt;/p&gt;
  &lt;p id=&quot;3vvm&quot;&gt;4. Реализуйте механизм отметки задачи как выполненной (с помощью чекбокса или другого элемента управления).&lt;/p&gt;
  &lt;p id=&quot;SNsd&quot;&gt;5. Позвольте пользователю фильтровать задачи, показывая только невыполненные задачи или все задачи.&lt;/p&gt;
  &lt;p id=&quot;XLyp&quot;&gt;6. Сохраняйте задачи после их добавления и удаления, чтобы они оставались при обновлении страницы (можно использовать localStorage или другие методы сохранения данных).&lt;/p&gt;
  &lt;p id=&quot;t3Yj&quot;&gt;7. Стилизуйте список задач, чтобы он выглядел привлекательно.&lt;/p&gt;
  &lt;p id=&quot;URgD&quot;&gt;Эта задача поможет вам попрактиковаться в создании интерфейсов с использованием JavaScript, работе с DOM-элементами, обработке событий и управлении данными.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:FgKmNqA7O2b</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/FgKmNqA7O2b?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Задача: Интерактивный слайдер изображений</title><published>2023-09-10T21:02:30.432Z</published><updated>2023-09-10T21:02:30.432Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/ff/74/ff740229-98da-48fa-9f61-1d639bb088b7.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/f0/98/f098071c-33c0-4b62-b5ed-023d90b5ca80.png&quot;&gt;Ваша задача - создать интерактивный слайдер изображений, который позволяет пользователям просматривать и переключаться между изображениями.</summary><content type="html">
  &lt;figure id=&quot;CxTd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f0/98/f098071c-33c0-4b62-b5ed-023d90b5ca80.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YZ3d&quot;&gt;Ваша задача - создать интерактивный слайдер изображений, который позволяет пользователям просматривать и переключаться между изображениями.&lt;/p&gt;
  &lt;p id=&quot;r2Fd&quot;&gt;Требования:&lt;/p&gt;
  &lt;p id=&quot;Phly&quot;&gt;1. У вас должно быть несколько изображений (например, 3-5), и начните с отображения первого изображения.&lt;/p&gt;
  &lt;p id=&quot;wdOE&quot;&gt;2. Создайте кнопки &amp;quot;Вперед&amp;quot; и &amp;quot;Назад&amp;quot;, которые позволяют пользователю переключаться между изображениями.&lt;/p&gt;
  &lt;p id=&quot;Oe9o&quot;&gt;3. При переключении между изображениями должны использоваться анимации или переходы для плавного перехода между слайдами.&lt;/p&gt;
  &lt;p id=&quot;kwJC&quot;&gt;4. Отобразите текущий номер слайда (например, &amp;quot;Слайд 1 из 3&amp;quot;) для удобства пользователя.&lt;/p&gt;
  &lt;p id=&quot;Zbbu&quot;&gt;5. Реализуйте бесконечный цикл, чтобы после последнего изображения снова отображалось первое.&lt;/p&gt;
  &lt;p id=&quot;kVOw&quot;&gt;6. Предоставьте возможность автоматической прокрутки слайдов (автоматическое воспроизведение), которую пользователь может включить и выключить.&lt;/p&gt;
  &lt;p id=&quot;W5DI&quot;&gt;7. Используйте HTML, CSS и JavaScript для создания слайдера.&lt;/p&gt;
  &lt;p id=&quot;5109&quot;&gt;Эта задача позволит вам практиковаться в создании интерфейсов с использованием JavaScript, обработке событий и анимациях для создания функционального и интерактивного слайдера изображений.&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:Xi9UON3rdWb</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/Xi9UON3rdWb?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Как называть html классы </title><published>2023-09-10T21:00:39.493Z</published><updated>2023-09-10T21:00:39.493Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/79/8f/798f08df-7316-4550-b972-8fdf85902036.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/07/5e/075efc50-ecb7-4a87-8fc4-f821b51df1fc.png&quot;&gt;Именование классов HTML элементов - это важный аспект создания структурированных и читаемых веб-страниц. Хорошее именование классов упрощает понимание и обслуживание вашего кода. Вот некоторые bewchcie советы по именованию классов в HTML:</summary><content type="html">
  &lt;figure id=&quot;eXi8&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/07/5e/075efc50-ecb7-4a87-8fc4-f821b51df1fc.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;L1Q0&quot;&gt;Именование классов HTML элементов - это важный аспект создания структурированных и читаемых веб-страниц. Хорошее именование классов упрощает понимание и обслуживание вашего кода. Вот некоторые bewchcie советы по именованию классов в HTML:&lt;/p&gt;
  &lt;p id=&quot;IzuI&quot;&gt;1. &lt;strong&gt;Используйте описательные имена&lt;/strong&gt;: Называйте классы на основе их описания и назначения. Подумайте о том, что делает элемент, и выберите имя, которое отражает его смысл. Например, если это меню навигации, класс может называться &amp;#x60;nav-menu&amp;#x60;, если это заголовок, то &amp;#x60;page-title&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;AaTm&quot;&gt;2. &lt;strong&gt;Используйте семантику&lt;/strong&gt;: Придерживайтесь семантических имен. Это означает, что вы должны выбирать имена, которые точно описывают, что представляет собой элемент. Например, для заголовков используйте классы &amp;#x60;header&amp;#x60;, &amp;#x60;subheader&amp;#x60;, &amp;#x60;section-title&amp;#x60;, а не &amp;#x60;div1&amp;#x60;, &amp;#x60;div2&amp;#x60;, &amp;#x60;text&amp;#x60;.&lt;/p&gt;
  &lt;p id=&quot;zIEp&quot;&gt;3. &lt;strong&gt;Избегайте имен слишком длинных&lt;/strong&gt;: Имена классов не должны быть слишком длинными и громоздкими. Они должны быть легко читаемыми и запоминаемыми. Пытайтесь найти баланс между описательностью и краткостью.&lt;/p&gt;
  &lt;p id=&quot;rlb9&quot;&gt;4. &lt;strong&gt;Используйте дефисы или нижние подчеркивания&lt;/strong&gt;: Разделяйте слова в именах классов дефисами (&amp;#x60;my-class-name&amp;#x60;) или нижними подчеркиваниями (&amp;#x60;my_class_name&amp;#x60;). Это делает имена более читаемыми и различимыми.&lt;/p&gt;
  &lt;p id=&quot;x3Xk&quot;&gt;5. Избегайте ключевых слов и спецсимволов: Не используйте ключевые слова из HTML, CSS или JavaScript (например, &amp;#x60;class&amp;#x60;, &amp;#x60;id&amp;#x60;, &amp;#x60;style&amp;#x60;, &amp;#x60;div&amp;#x60;, &amp;#x60;function&amp;#x60;) в именах классов. Избегайте спецсимволов, пробелов и символов, которые могут вызвать проблемы при работе с CSS и JavaScript.&lt;/p&gt;
  &lt;p id=&quot;RECG&quot;&gt;6. &lt;strong&gt;Согласуйте имена классов&lt;/strong&gt;: Важно соблюдать согласованность в именах классов в вашем проекте. Если вы используете BEM, SMACSS или другую методологию, придерживайтесь их соглашений по именованию.&lt;/p&gt;
  &lt;p id=&quot;4EPk&quot;&gt;7. &lt;strong&gt;Имена классов и доступность&lt;/strong&gt;: При разработке с учетом доступности обязательно убедитесь, что имена классов отражают функциональность элемента, особенно если они влияют на скрытые или специальные элементы интерфейса.&lt;/p&gt;
  &lt;p id=&quot;j5dF&quot;&gt;8. &lt;strong&gt;Контекст и область действия&lt;/strong&gt;: Придерживайтесь той же семантики и именования в пределах определенной области действия. Например, если у вас есть блок &amp;quot;новости&amp;quot;, используйте &amp;#x60;news-title&amp;#x60;, &amp;#x60;news-image&amp;#x60;, &amp;#x60;news-description&amp;#x60; и т. д.&lt;/p&gt;
  &lt;p id=&quot;3aRQ&quot;&gt;9. **Краткость и ясность**: Старайтесь сделать имена классов краткими и ясными. Если имя класса становится слишком длинным и сложным, это может сигнализировать о необходимости пересмотреть структуру вашего HTML или CSS.&lt;/p&gt;
  &lt;p id=&quot;mlUJ&quot;&gt;10. **Документация**: При необходимости добавляйте комментарии или документацию к вашим классам, особенно если они используются для стилизации сложных компонентов.&lt;/p&gt;
  &lt;p id=&quot;7bYv&quot;&gt;Применение этих советов поможет создать чистый, читаемый и поддерживаемый код, что облегчит разработку и сопровождение вашего веб-проекта.&lt;/p&gt;
  &lt;p id=&quot;LwtI&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;QaTm&quot;&gt;Также можете использовать различные методологии, например &lt;a href=&quot;https://telegra.ph/Metodologiya-BEHM-07-13&quot; target=&quot;_blank&quot;&gt;БЭМ&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>free_html_lessons:8lXw6HnBh35</id><link rel="alternate" type="text/html" href="https://teletype.in/@free_html_lessons/8lXw6HnBh35?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=free_html_lessons"></link><title>Как сделать поднимающийся placeholder?</title><published>2023-09-10T20:56:12.418Z</published><updated>2023-09-10T20:56:12.418Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/01/a4/01a4d5a8-e415-4b3f-8bb0-a63df15f115a.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/48/16/4816acfd-a831-4d2a-8c7b-7d5ff537c62e.png&quot;&gt;Чтобы создать поднимающийся placeholder для поля ввода, используйте следующий код CSS:</summary><content type="html">
  &lt;figure id=&quot;MbD8&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/48/16/4816acfd-a831-4d2a-8c7b-7d5ff537c62e.png&quot; width=&quot;1920&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;eb16&quot;&gt;Чтобы создать поднимающийся placeholder для поля ввода, используйте следующий код CSS:&lt;/p&gt;
  &lt;p id=&quot;qvQv&quot;&gt;&amp;#x60;&amp;#x60;&amp;#x60;css&lt;br /&gt;/* Стили для поля ввода */&lt;br /&gt;input {&lt;br /&gt;  border: none;&lt;br /&gt;  border-bottom: 2px solid #ccc;&lt;br /&gt;  outline: none;&lt;br /&gt;  font-size: 18px;&lt;br /&gt;  transition: border-color 0.3s;&lt;br /&gt;  padding: 10px 0;&lt;br /&gt;  background: transparent;&lt;br /&gt;}&lt;/p&gt;
  &lt;p id=&quot;Lbpw&quot;&gt;/* Стили для поднимающегося placeholder */&lt;br /&gt;input:focus ~ label,&lt;br /&gt;input:valid ~ label {&lt;br /&gt;  transform: translateY(-20px);&lt;br /&gt;  font-size: 14px;&lt;br /&gt;  color: #555;&lt;br /&gt;  pointer-events: none;&lt;br /&gt;}&lt;/p&gt;
  &lt;p id=&quot;hH6m&quot;&gt;/* Стили для метки (label) */&lt;br /&gt;label {&lt;br /&gt;  position: absolute;&lt;br /&gt;  top: 10px;&lt;br /&gt;  left: 0;&lt;br /&gt;  font-size: 18px;&lt;br /&gt;  color: #888;&lt;br /&gt;  transition: transform 0.3s, font-size 0.3s, color 0.3s;&lt;br /&gt;}&lt;/p&gt;
  &lt;p id=&quot;JJqI&quot;&gt;/* Стили для активного поля ввода */&lt;br /&gt;input:focus {&lt;br /&gt;  border-color: #555;&lt;br /&gt;}&lt;br /&gt;&lt;strong&gt;&amp;#x60;&amp;#x60;&amp;#x60;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;hmLK&quot;&gt;&lt;strong&gt;HTML-код для этой структуры выглядит следующим образом:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;EYun&quot;&gt;&amp;#x60;&amp;#x60;&amp;#x60;html&lt;br /&gt;&amp;lt;div class=&amp;quot;input-container&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;input type=&amp;quot;text&amp;quot; required&amp;gt;&lt;br /&gt;  &amp;lt;label&amp;gt;Имя&amp;lt;/label&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;#x60;&amp;#x60;&amp;#x60;&lt;/p&gt;
  &lt;p id=&quot;iTCr&quot;&gt;&lt;strong&gt;Этот код создает поле ввода с эффектом поднимающегося placeholder:&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;FLUA&quot;&gt;1. Поле ввода и метка (label) размещены в обертке (&amp;#x60;.input-container&amp;#x60;).&lt;/p&gt;
  &lt;p id=&quot;Hbgg&quot;&gt;2. При фокусировке на поле ввода (&amp;#x60;input:focus&amp;#x60;) или при наличии введенных данных (&amp;#x60;input:valid&amp;#x60;), метка (label) поднимается вверх и уменьшается в размере, а также изменяется цвет.&lt;/p&gt;
  &lt;p id=&quot;9pQv&quot;&gt;3. Свойство &amp;#x60;pointer-events: none;&amp;#x60; используется, чтобы метка (label) не мешала взаимодействию с полем ввода.&lt;/p&gt;
  &lt;p id=&quot;iG1w&quot;&gt;4. Эффект анимации достигается с помощью CSS-переходов (transitions).&lt;/p&gt;
  &lt;p id=&quot;DNDj&quot;&gt;Этот код позволяет создать эффект поднимающегося placeholder без необходимости использовать JavaScript.&lt;/p&gt;

</content></entry></feed>