<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Frontend - Code-Notes.ru</title>
	<atom:link href="https://code-notes.ru/category/programming/frontend/feed/" rel="self" type="application/rss+xml" />
	<link>https://code-notes.ru</link>
	<description>Всё о веб-разработке и не только</description>
	<lastBuildDate>Thu, 09 Nov 2023 09:51:42 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://code-notes.ru/wp-content/uploads/2023/11/cropped-cn_ava_tr-32x32.png</url>
	<title>Frontend - Code-Notes.ru</title>
	<link>https://code-notes.ru</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CSS Псевдокласс :has() что это?</title>
		<link>https://code-notes.ru/css-psevdoklass-has/</link>
					<comments>https://code-notes.ru/css-psevdoklass-has/#respond</comments>
		
		<dc:creator><![CDATA[Влад]]></dc:creator>
		<pubDate>Wed, 08 Nov 2023 10:22:19 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[frontend]]></category>
		<guid isPermaLink="false">https://code-notes.ru/?p=241</guid>

					<description><![CDATA[<p>Введение Стили, указанные для элемента с&#160;псевдоклассом&#160;:has(), будут применены, если хотя бы один из относительных селекторов, переданных в качестве аргумента, соответствует хотя бы одному элементу. С помощью данного псевдокласса можно указать стили для родительского или предшествующего элементов. MDN Web Docs (Переведя на русский язык). Так что же такое :has()? Для чего он нужен? Как и где [&#8230;]</p>
<p>The post <a href="https://code-notes.ru/css-psevdoklass-has/">CSS Псевдокласс :has() что это?</a> first appeared on <a href="https://code-notes.ru">Code-Notes.ru</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Введение</h2>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Стили, указанные для элемента с&nbsp;псевдоклассом&nbsp;<strong><code>:has()</code></strong>, будут применены, если хотя бы один из относительных селекторов, переданных в качестве аргумента, соответствует хотя бы одному элементу.</p>



<p>С помощью данного псевдокласса можно указать стили для родительского или предшествующего элементов.</p>
<cite>MDN Web Docs (Переведя на русский язык).</cite></blockquote>



<p>Так что же такое <strong><code>:has()</code></strong>? Для чего он нужен? Как и где его применять? Какими браузерами поддерживается? <br>Все это разобрали в понятных примерах.</p>



<h2 class="wp-block-heading">Псевдокласс :has()</h2>



<p>Это псевдоклас CSS стилей, с помощью которого можно изменить родительский селектор содержащий определённый дочерний элемент, следующий за ним. Иначе говоря, он позволяет стилизовать элемент имеющий определенные условия.</p>



<p>Все еще сложно понять, верно? Давайте обратимся к примерам.</p>



<h2 class="wp-block-heading">Пример использования :has()</h2>



<p>Что бы легко разобраться как он работает мы набросали небольшой пример.</p>



<p>Предположим что у нас есть небольшое меню, в котором у одного пункта присутствует изображение.</p>



<div class="wp-block-codemirror-blocks-code-block code-block"><pre class="CodeMirror" data-setting="{&quot;showPanel&quot;:false,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:false,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;htmlmixed&quot;,&quot;mime&quot;:&quot;text/html&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;HTML&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;html&quot;}">&lt;nav&gt;
   &lt;a href=&quot;#&quot;&gt;
      &lt;img src=&quot;https://www.freeiconspng.com/uploads/red-circle-icon-16.png&quot; alt=&quot;red circle icon&quot;&gt;
      Home
   &lt;/a&gt;
   &lt;a href=&quot;#&quot;&gt;Gallery&lt;/a&gt;
   &lt;a href=&quot;#&quot;&gt;Blog&lt;/a&gt;
   &lt;a href=&quot;#&quot;&gt;Contact&lt;/a&gt;
&lt;/nav&gt;</pre></div>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" width="736" height="206" src="https://code-notes.ru/wp-content/uploads/2023/11/has_menu_start.jpg" alt="" class="wp-image-247" style="width:467px;height:auto" srcset="https://code-notes.ru/wp-content/uploads/2023/11/has_menu_start.jpg 736w, https://code-notes.ru/wp-content/uploads/2023/11/has_menu_start-300x84.jpg 300w" sizes="(max-width: 736px) 100vw, 736px" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ImageObject","url":"https://code-notes.ru/wp-content/uploads/2023/11/has_menu_start.jpg","width":"736","height":"206"}</script></figure>



<p>Имеем к нему следующие стили шрифта, разметки и так далее.</p>



<div class="wp-block-codemirror-blocks-code-block code-block"><pre class="CodeMirror" data-setting="{&quot;showPanel&quot;:false,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:false,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;css&quot;,&quot;mime&quot;:&quot;text/css&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;CSS&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;css&quot;}">body {
   font-family: 'Roboto Condensed', sans-serif;
   letter-spacing: .1vw;
}
nav {
   display: flex;
   gap: 6vw;
}
a {
   text-decoration: none;
   display: flex;
   align-items: center;
}
img {
  width: 25px;
  margin-right: 5px;
}</pre></div>



<p>К примеру, нам необходимо изменить цвет ссылок, которые имеют в качестве дочерних элементов картинки, на красный. Это можно написать с помощью JS или же обратиться к <a href="/css-media-queries" target="_blank" rel="noopener" title="медиазапросам">медиазапросам</a>, но тогда мы получим много строчек кода.<br>Тут как раз нам пригодится псевдокласс&nbsp;<strong><code>:has()</code></strong>, с его помощью мы можем изменить стили следующим образом:</p>



<div class="wp-block-codemirror-blocks-code-block code-block"><pre class="CodeMirror" data-setting="{&quot;showPanel&quot;:false,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:false,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;css&quot;,&quot;mime&quot;:&quot;text/css&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;CSS&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;css&quot;}">a:has(&gt; img) {
   color: red;
}</pre></div>



<p>И получим следующий результат</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="754" height="98" src="https://code-notes.ru/wp-content/uploads/2023/11/has_menu_end.jpg" alt="" class="wp-image-252" style="width:471px;height:auto" srcset="https://code-notes.ru/wp-content/uploads/2023/11/has_menu_end.jpg 754w, https://code-notes.ru/wp-content/uploads/2023/11/has_menu_end-300x39.jpg 300w" sizes="(max-width: 754px) 100vw, 754px" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ImageObject","url":"https://code-notes.ru/wp-content/uploads/2023/11/has_menu_end.jpg","width":"754","height":"98"}</script></figure>



<p class="has-text-align-center has-normal-font-size">Посмотреть пример можно на <a href="https://codepen.io/MvWhack/pen/NWoppVL" target="_blank" rel="noopener" title="CodePen">CodePen</a></p>



<blockquote class="wp-block-quote is-style-warning is-layout-flow wp-block-quote-is-layout-flow">
<p class="has-text-align-left">Псевдокласс&nbsp;<code>:has()</code>&nbsp;не может быть вложен в другой&nbsp;<code>:has()</code>, так как это может привести к циклическим запросам при выполнении поиска селектора.<br><br>Нельзя использовать псевдоэлементы в качестве аргументов в&nbsp;<code>:has()</code>, а также в качестве целевого селектора.</p>
</blockquote>



<h2 class="wp-block-heading">Поддержка в браузерах</h2>



<p>Так как <strong><code>:has()</code></strong> появился совсем недавно, а именно в начале 2022 года, то не стоит ее сейчас использовать повсеместно, а лучше дождаться полной поддержки всеми браузерами. Как мы видим ниже, <strong>поддержка <code>:has()</code> в данный момент отсутствует в Mozilla Firefox</strong> и появится только в версии 121, релиз которой запланирован на декабрь 2023 года.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="528" src="https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-1024x528.jpg" alt="caniuse :has()" class="wp-image-243" srcset="https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-1024x528.jpg 1024w, https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-300x155.jpg 300w, https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-768x396.jpg 768w, https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-1536x791.jpg 1536w, https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-2048x1055.jpg 2048w, https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-776x400.jpg 776w" sizes="(max-width: 1024px) 100vw, 1024px" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ImageObject","url":"https://code-notes.ru/wp-content/uploads/2023/10/has_can_i_use-1024x528.jpg","width":"1024","height":"528"}</script></figure>



<p></p><p>The post <a href="https://code-notes.ru/css-psevdoklass-has/">CSS Псевдокласс :has() что это?</a> first appeared on <a href="https://code-notes.ru">Code-Notes.ru</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://code-notes.ru/css-psevdoklass-has/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Что такое css медиа-запросы</title>
		<link>https://code-notes.ru/css-media-queries/</link>
					<comments>https://code-notes.ru/css-media-queries/#respond</comments>
		
		<dc:creator><![CDATA[Влад]]></dc:creator>
		<pubDate>Fri, 20 Oct 2023 17:04:15 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[figma]]></category>
		<category><![CDATA[frontend]]></category>
		<guid isPermaLink="false">https://code-notes.ru/?p=39</guid>

					<description><![CDATA[<p>Медиа&#8212;запросы&#160;(media queries) &#8212; это необходимый набор правил css стилей для определения поведения внешнего вида сайта при изменении размера ширины экрана. Так звучит определение медиа-запросов, но давайте поговорим о них простым языком. Современные сайты обязательно должен отлично смотреться как на компьютере, так и на планшете, а особенно на мобильном устройстве. Это связано с тем что большая [&#8230;]</p>
<p>The post <a href="https://code-notes.ru/css-media-queries/">Что такое css медиа-запросы</a> first appeared on <a href="https://code-notes.ru">Code-Notes.ru</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><strong>Медиа</strong>&#8212;<strong>запросы</strong>&nbsp;(media queries) &#8212; это необходимый набор правил css стилей для определения поведения внешнего вида сайта при изменении размера ширины экрана. <br><br>Так звучит определение <strong>медиа-запросов</strong>, но давайте поговорим о них простым языком.<br><br>Современные сайты обязательно должен отлично смотреться как на компьютере, так и на планшете, а особенно на мобильном устройстве. Это связано с тем что большая часть пользователей интернета заходят с мобильных устройств.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>На начало 2023 года 5,44 миллиарда человек пользуются мобильными телефонами, что составляет 68% от общей численности населения мира. Количество уникальных пользователей мобильных телефонов за последний год увеличилось чуть более чем на 3% — на 168 миллионов новых пользователей.</p>
<cite>Источник web-canape.ru</cite></blockquote>



<p>Так как сделать так, что бы сайт действительно хорошо смотрелся на всех устройства? Тут нам и приходят в помощь <strong>медиа-запросы</strong>.</p>



<h2 class="wp-block-heading">Как писать медиа-запросы</h2>



<p>Начнем с того что когда дизайнер делает <strong>макет в Figma</strong>, он всегда старается продумать <strong>поведение сайта при адаптиве</strong>. По этому когда мы получаем макет, мы видим какие <strong>&#171;точки слома&#187;</strong> или <strong>&#171;точки остановы&#187;</strong>, так называемые <strong>брейкпойнты (breakpoint)</strong> присутствуют.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="548" src="https://code-notes.ru/wp-content/uploads/2023/10/media-queries-1024x548.jpg" alt="" class="wp-image-94" srcset="https://code-notes.ru/wp-content/uploads/2023/10/media-queries-1024x548.jpg 1024w, https://code-notes.ru/wp-content/uploads/2023/10/media-queries-300x161.jpg 300w, https://code-notes.ru/wp-content/uploads/2023/10/media-queries-768x411.jpg 768w, https://code-notes.ru/wp-content/uploads/2023/10/media-queries-1536x822.jpg 1536w, https://code-notes.ru/wp-content/uploads/2023/10/media-queries-747x400.jpg 747w, https://code-notes.ru/wp-content/uploads/2023/10/media-queries.jpg 1801w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ImageObject","url":"https://code-notes.ru/wp-content/uploads/2023/10/media-queries-1024x548.jpg","width":"1024","height":"548"}</script></figure>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button has-custom-font-size" style="font-size:14px"><a class="wp-block-button__link has-white-color has-vivid-cyan-blue-background-color has-text-color has-background wp-element-button" href="https://www.figma.com/file/TOcit7vcOmqGG8AKlVLMHS/panteon-landing-(Copy)?type=design&amp;node-id=0%3A1&amp;mode=design&amp;t=fIiC8xMs53279UEk-1" target="_blank" rel="noopener">Посмотреть макет Panteon в Figma</a></div>
</div>



<p>Основываясь на макет, мы понимаем какие основные <strong>брейкпойнты (breakpoint)</strong> мы должны использовать при написании адаптива.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>К сожалению дизайнер, делая макет, не всегда продумывает адаптив, тогда его приходится писать самому при вёрстке макета.</p>
<cite>Из нашего опыта</cite></blockquote>



<p>Общепринятый вид написания <strong>медиа-запросов</strong> выглядит так:</p>



<div class="wp-block-codemirror-blocks-code-block code-block"><pre class="CodeMirror" data-setting="{&quot;showPanel&quot;:false,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:false,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;css&quot;,&quot;mime&quot;:&quot;text/css&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;CSS&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;css&quot;}">@media [тип устройства] [характеристика устройства] { 
  /* CSS-правила */ 
}</pre></div>



<p>Всего есть четыре основные типа устройств:</p>



<ul class="wp-block-list">
<li><strong>all</strong> &#8212; условие медиа-запроса применится ко всем устройствам. Если не задать никакой тип в выражении, то по умолчанию применяется этот.</li>



<li><strong>print</strong> &#8212; стили внутри такого медиа-запроса применятся при печати на принтерах или экспорте в PDF, в том числе в режиме предпросмотра документа.</li>



<li><strong>screen</strong> &#8212; для устройств с экранами.</li>



<li><strong>speech</strong> &#8212; для синтезаторов речи, а также программы для воспроизведения текста вслух. Сюда, например, можно отнести речевые браузеры.</li>
</ul>



<p>В <strong>написании медиа-запросов</strong> может присутствовать сразу несколько условий через запятую. В этом случае css стили будут применять к каждому из условий.</p>



<div class="wp-block-codemirror-blocks-code-block code-block"><pre class="CodeMirror" data-setting="{&quot;showPanel&quot;:false,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:false,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;css&quot;,&quot;mime&quot;:&quot;text/css&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;CSS&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;css&quot;}">@media (orientation: landscape), (max-width: 960px) {
  .text {
    color: red;
  }
}</pre></div>



<p>В этом запросе стили применятся для устройств <code>orientation: landscape</code> &#8212; это альбомная ориентация и экраны с максимальной шириной до 960рх.</p>



<p>Так же можно задавать диапазон ширины экрана в котором будут применятся правила:</p>



<div class="wp-block-codemirror-blocks-code-block code-block"><pre class="CodeMirror" data-setting="{&quot;showPanel&quot;:false,&quot;languageLabel&quot;:&quot;language&quot;,&quot;fullScreenButton&quot;:false,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;css&quot;,&quot;mime&quot;:&quot;text/css&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:true,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;language&quot;:&quot;CSS&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;css&quot;}">@media (min-width: 320px) and (max-width: 640px) {
  .link {
    text-decoration: underline;
  }
}</pre></div>



<h2 class="wp-block-heading">Совет</h2>



<p>Для вёрстки <strong>mobile first</strong> (первым собирается экран для мобильного устройства) лучше использовать <strong>медиа-запрос</strong> с&nbsp;<code>min-width</code>&nbsp;и располагать их в порядке увеличения ширины экрана.</p>



<p>В свою очередь для вёрстки сначала десктопа (<strong>desktop first</strong>), использовать&nbsp;<code>max-width</code>, и писать запросы в обратном порядке.</p><p>The post <a href="https://code-notes.ru/css-media-queries/">Что такое css медиа-запросы</a> first appeared on <a href="https://code-notes.ru">Code-Notes.ru</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://code-notes.ru/css-media-queries/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CSS-функция clamp() что это?</title>
		<link>https://code-notes.ru/css-function-clamp/</link>
					<comments>https://code-notes.ru/css-function-clamp/#respond</comments>
		
		<dc:creator><![CDATA[Влад]]></dc:creator>
		<pubDate>Fri, 20 Oct 2023 16:37:31 +0000</pubDate>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[figma]]></category>
		<category><![CDATA[frontend]]></category>
		<guid isPermaLink="false">https://code-notes.ru/?p=12</guid>

					<description><![CDATA[<p>Введение Давайте поговорим про относительно молодую, но очень интересную CSS функцию clamp(). Эта функция появилась в css стилях в апреле 2020 года, но до сих пор её мало кто использует. Функция clamp() используется что бы задать диапазон изменения некоего элемента. Она принимает в себя три значения &#8212; минимальный размер, рекомендованное значение, максимальный размер. Разберем функцию [&#8230;]</p>
<p>The post <a href="https://code-notes.ru/css-function-clamp/">CSS-функция clamp() что это?</a> first appeared on <a href="https://code-notes.ru">Code-Notes.ru</a>.</p>]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">Введение</h2>



<p>Давайте поговорим про относительно молодую, но очень интересную CSS функцию <code>clamp()</code>. Эта функция появилась в css стилях в апреле 2020 года, но до сих пор её мало кто использует.</p>



<p>Функция <code>clamp()</code> используется что бы задать диапазон изменения некоего элемента. Она принимает в себя три значения &#8212; минимальный размер, рекомендованное значение, максимальный размер.<br></p>



<h2 class="wp-block-heading">Разберем функцию на примере заголовка</h2>



<p>Когда мы получили от дизайнера макет в Figma, в котором видим все размеры заголовков и текстов, а так же <a href="/css-media-queries/" target="_blank" rel="noopener" title="">&#171;точки слома&#187;</a>, мы понимаем как писать адаптив.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="473" src="https://code-notes.ru/wp-content/uploads/2023/10/clamp_1-1024x473.jpg" alt="Пример макета сайта" class="wp-image-14" srcset="https://code-notes.ru/wp-content/uploads/2023/10/clamp_1-1024x473.jpg 1024w, https://code-notes.ru/wp-content/uploads/2023/10/clamp_1-300x139.jpg 300w, https://code-notes.ru/wp-content/uploads/2023/10/clamp_1-768x355.jpg 768w, https://code-notes.ru/wp-content/uploads/2023/10/clamp_1.jpg 1387w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ImageObject","url":"https://code-notes.ru/wp-content/uploads/2023/10/clamp_1-1024x473.jpg","width":"1024","height":"473"}</script></figure>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button has-custom-font-size is-style-outline is-style-outline--1" style="font-size:14px"><a class="wp-block-button__link has-white-color has-vivid-cyan-blue-background-color has-text-color has-background has-text-align-center wp-element-button" href="https://www.figma.com/file/hsibzlzknabrniTN3Hy5w8/SendIT---%D0%B4%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0-(Copy)?type=design&amp;node-id=0%3A1&amp;mode=design&amp;t=TvL8RP9FyX3eB0BO-1" target="_blank" rel="noopener">Посмотреть макет SendIT в Figma</a></div>
</div>



<p>На рисунке выше мы видим три основные <a href="/css-media-queries/" target="_blank" rel="noopener" title="">&#171;брейкпойнта&#187;</a> &#8212; это 1440 px (десктопная), 768 рх (планшетная) и 320 рх (мобильная). Видим как меняется размер заголовка &#171;Придумайте что отправить&#187;, эти размеры 48рх, 44рх, 32 рх.<br><br>Конечно же по привычке мы начнем писать медиа запросы, в которых пропишем правила для изменения текста (Заголовков) при адаптиве, но тут как раз можно использовать css-функцию <code>clamp()</code>, которая позволит сократить количество строчек кода.<br></p>



<figure class="wp-block-video"><video height="906" style="aspect-ratio: 1482 / 906;" width="1482" controls src="https://code-notes.ru/wp-content/uploads/2023/10/video-23-10-2023-165738.mp4"></video></figure>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button has-custom-font-size" style="font-size:14px"><a class="wp-block-button__link has-white-color has-vivid-cyan-blue-background-color has-text-color has-background wp-element-button" href="https://codepen.io/MvWhack/pen/wvNBvZg" target="_blank" rel="noopener">Посмотреть на CodePen</a></div>
</div>



<p>В примере мы создали на <strong>Codepen</strong> набросок текста из макета и применили к нему функцию <code>clamp()</code>, в которой указали минимальное и максимальное значение из нашего макета, а так же указали рекомендуемое. </p>



<p>Текст изначально принял значение <code>font-size</code> в 48рх, при уменьшении размера экрана он принимает значение в 7vw пока не достигнет значения в 32px. Таким образом можно указать поведение текста в адаптиве, что значительно упростить его написание.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>В одном выражении допустимо применять разные единицы (px, %, vw, em, rem и др.), а также использовать функцию&nbsp;<code>calc(</code>).<br><br>При указании значений соблюдайте условие «минимум &lt; значение &lt; максимум». Иными словами, значение должно быть больше минимума, но меньше максимума. Если параметры выставлены в неверном порядке (например: <code>clamp(40px, 10px, 20px))</code>, то в качестве значения выбирается минимум, в данном случае 40px.</p>
</blockquote>



<h2 class="wp-block-heading">Применение css-функции clamp()</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="406" src="https://code-notes.ru/wp-content/uploads/2023/10/clamp-1024x406.jpg" alt="caniuse clamp()" class="wp-image-66" srcset="https://code-notes.ru/wp-content/uploads/2023/10/clamp-1024x406.jpg 1024w, https://code-notes.ru/wp-content/uploads/2023/10/clamp-300x119.jpg 300w, https://code-notes.ru/wp-content/uploads/2023/10/clamp-768x304.jpg 768w, https://code-notes.ru/wp-content/uploads/2023/10/clamp-1536x608.jpg 1536w, https://code-notes.ru/wp-content/uploads/2023/10/clamp-2048x811.jpg 2048w, https://code-notes.ru/wp-content/uploads/2023/10/clamp-870x345.jpg 870w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><script type="application/ld+json">{"@context":"https://schema.org","@type":"ImageObject","url":"https://code-notes.ru/wp-content/uploads/2023/10/clamp-1024x406.jpg","width":"1024","height":"406"}</script></figure>



<p>На сайте <strong>CanIUse</strong> мы видим что функция <code>clamp()</code> набрала уже почти полные 95%. а это говорит нам что в крупных сложных проектах (которые могут быть открыты пользователями со старых браузеров) пока не рекомендуется ее использовать, а вот в небольших или лендингах можно смело вставлять.</p><p>The post <a href="https://code-notes.ru/css-function-clamp/">CSS-функция clamp() что это?</a> first appeared on <a href="https://code-notes.ru">Code-Notes.ru</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://code-notes.ru/css-function-clamp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://code-notes.ru/wp-content/uploads/2023/10/video-23-10-2023-165738.mp4" length="1247653" type="video/mp4" />

			</item>
	</channel>
</rss>
