Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

CSS переменные в SVG

На данный момент работаю с SVG. Практически в каждом теге есть код цвета. В основном использую одни и те же цвета, пока их всего пять. Думаю, что в будущем цвет буду менять, придётся копаться в нескольких файлах, производить замену. Тут задумался - а ведь проще написать переменные и использовать их, в будущем не придётся рыться в нескольких файлах, а отредактировать всего один. Так я и сделал, я добавил переменные в SVG. Сейчас расскажу, как я это сделал.

Я создал файл: "svg.css", с таким содержимым:
:root {
	--cool:   #0074FF; /* Оттенок синего */
	--murk:   #033C59; /* Оттенок синего + зелёного */
	--spring: #48CFAD; /* Оттенок зелёного */
	--smoke:  #CCD3EB; /* Оттенок серого */
	--fire:   #FC6459; /* Оттенок красного */
}

Подключил "svg.css" к документу. Теперь в SVG меняю:
<g fill="#0074FF">

На:
<g fill="var(--cool)">

Готово. Переменная отдаёт указанный ей код цвета.

CSS переменная должна начинаться с двойного дефиса (--)....

Как посчитать количество элементов на чистом CSS

CSS
Допустим у нас есть блок с ID block, в котором находятся элементы (<span> или другие), и нам надо посчитать их на чистом CSS:
<div id="block">
    <span></span>
    <span></span>
    <span></span>
</div>

Добавим блок, для вывода количества элементов:
<div id="sum"></div>

Затем считаем на чистом CSS:
#block {
	counter-reset: block;
}

#block > span {
	counter-increment: block;
}

#sum:before {
	content: counter(block);
}

CSS посчитает элементов в блоке и выведет результат в блок <div id="sum"></div>....

Как убрать стрелочки в поле <input type="number">

Чтобы убрать стрелочки у поля number добавьте свойство CSS:
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
	-webkit-appearance: none;
}

Для браузера Firefox можно использовать:
input[type='number'] {
	-moz-appearance: textfield;
}
...

Стиль маркировочного списка

Чтобы составить список, используют тег <li> внутри <ul> или <ol>:
<ul>
	<li>1 элемент списка.</li>
	<li>2 элемент списка.</li>
	<li>3 элемент списка.</li>
</ul>

<ol>
	<li>элемент списка.</li>
	<li>элемент списка.</li>
	<li>элемент списка.</li>
</ol>

В этом случае, браузер отобразит списки стандартного вида:
  • 1 элемент списка.
  • 2 элемент списка.
  • 3 элемент списка.


  1. элемент списка.
  2. элемент списка.
  3. элемент списка.

Чтобы изменить марке, установите тегу <ul> CSS свойство list-style-type:
ul {
	list-style-type: disc;
}

Вместо значения disc можно использовать circle, в таком случае, маркеры будут в виде кругляшков, а не жирных точек.

Если необходимо изменить цвет маркера, используйте свойство:
li::marker {
	color: #008800;
}

Вместо зеленного цвета (#008800) можете написать любой другой.

Можно использовать свою картинку, как маркер. И для этого существует свойство:
li {
	list-style-image: url('marker.png');
}

Где marker.png - это Ваша картинка....

Продвинутые CSS-селекторы

Чтобы задать стиль элементу, мы используем атрибут class и id, например, у нас есть два блока, один с классом class_block, второй с идентификатором id_block:
<div class="class_block">
    <!-- Содержимое блока -->
</div>

<div id="id_block">
    <!-- Содержимое блока -->
</div>

Зная этот класс и идентификатор, мы можем стилизовать оба блока, как нам вздумается:
.class_block {
    /* Свойства блока с классом class_block */
}

#id_block {
    /* Свойства блока с идентификатором id_block */ 
}

Но что делать, если нам не известны названия класса и идентификатор? Возможно потому, что часть значения атрибута генерируется динамически. На помощь могут придти, так сказать продвинутые CSS-селекторы. Привожу пример динамически созданного идентификатора: 123_block - _block - постоянная часть названия идентификатора, цифры: 123 сгенерированы скриптом, в другом блоке эти цифру уже будут другие, одинаковых чисел в пределах одного документа не должно быть:
<div id="123_block">
    <!--
...