😎 » CSS3 » css3 примеры и описание их создания » Начальные CSS для шаблона
2 518 0  

Начальные CSS для шаблона

Каждый шаблон имеет стандартные стили, но иногда приходится долго мучится чтобы найти нужный способ прописать стиль.

Очень большое пособие по CSS

Вот и решил собрать «все самые необходимые стили», head, для начала работ по верстке дизайна сайта.

  Начальные скрипты   меню через checkbox   Кнопка вверх   Тени для текста

 


Основные:

.fon-pod-kolonky::after {content: ''; background: #f9f7f7; width:400px; height: 9999px; position: absolute; top: 0; left:-400px;  }
.menu:before{content:'\2939';white-space:pre;position:absolute;bottom:-18px;left:6px;color:#cea06f;font-size:33px;}
.btn:before{content:'Меню';}
.trukytnuk:before{content:'';display:block;width:1px;height:1px;background:none;border: 20px solid transparent; border-top: 20px solid #761a1b; position: absolute;left: 50%; bottom:-40px; margin-left:-10px;top:auto;right:auto; }
.sprite:before {content:"";display:block;width:15px;height:18px; background:url(../images/sprit.png) -1726px -491px; position:absolute;top:7px; left:4px;opacity:.6;}

/*--- Высота блока на 100% ---*/
     height: 100vh;      /*--- 100% от высоты видимой области страницы в браузере ---*/
     height: 100vw;     /*--- 100% от ширины ---*/
     {width: 100vm; width: 100vmin;} /*--- Наименьшие значение ---*/
     {width: vmax}          /*--- Наибольшие значение ---*/
}

width: calc(25% - 30px);

/*--- Контур и тень ---*/
.blackramka {border: 1px solid #000;}
.punkramka {border: 1px dashed #c9c9c9;}
.texkontyr {text-shadow: black 1px 1px 0, black -1px -1px 0, black -1px 1px 0, black 1px -1px 0;}
.texkontyr-mini {text-shadow: 0px 1px 1px black;}
.ten {box-shadow: rgb(0 0 0 / 99%) 0px 0px 20px;}

/*--- Сылка на 100% ---*/
a {display:block;width:100%;height:100%;position:absolute;top:0;left:0;z-index:12;}

/*--- Спрайт ---*/
[class*='bg-']{display:inline-block; background:url(../images/sprit.png) no-repeat -12px -235px;}
.bg-kvadrat {width:58px; height:58px;background-position: -1392px -413px;}

/*--- Прозрачный фон ---*/
background:rgba(75, 105, 68, 0.4);

/*--- Стилизованій Чекбокс ---*/
.sort-spis label::before { border-radius:3px; display: block; width:15px;height:15px; content: "";  background: #fff; border: var(--lightgray) solid 2px;position: absolute; top:-3px; left:-27px; z-index:1;}
.sort-spis input[type="checkbox"]:checked ~ label::before { background:var(--suniy); border: var(--suniy) solid 2px;}
.sort-spis input[type="checkbox"]:checked ~ label::after{content: "\f17c"; font-family: Flaticon; color: #fff; position: absolute; top: -1px; left: -24px; z-index:3;}

 /* Выборка *****/
======
.hedv a:nth-child(2){} - второй элемент из всех существующих в (.hedv)
.hedv a:nth-of-type(2) - второй элемент - только из (a)
======
:nth-child(-n+3) - выбрать первых 3 элемента

li:first-child {} - первый элемент
li:last-child {} - последний элемент
li:nth-child(2){} - второй элемент
li:nth-last-child(-n+2) {} - два последних
tr td:nth-child(odd) - все первые строки
  odd - Все нечетные номера элементов.
  even - Все четные номера элементов.
  число - Нумерация ведется последнего!!! элементfа в списке.

li:first-of-type {}
li:last-of-type {}
li:only-of-type {}
li:nth-of-type(2n) {}- Каждый второй элемент - толь с li? тругие теги игнорируются в подсчете
li:nth-last-of-type {}

/* Трансформация *****/
.rdar {transform: scale(1.0, 1.0)  translatey(20px)     rotate(2deg)    skew(2deg, 2deg)   ;}

 /* Анимация **********/
{ animation: marquee 19s infinite alternate linear; transition: all 0.3s ease-out;}
@keyframes marquee{
0%   {transform: translate(0, 0);}
100% {transform: translate(-100%, 0)}
}
 /* Разные картинки **********/
.no-webp #start{background-image: url('/resources/images/bg-1-0.png');}
.webp #start{background-image: url('/resources/images/bg-1-0.webp');}

<picture>
        <source srcset="/images/banner/mal.webp" type="image/webp">
        <img src="/images/banner/mal.jpg" >
</picture>

--- * Подробнее о разных картинках

Буквица:

p:first-letter{font-size:2.5em; padding:2px; margin-right:6px;float:left; line-height:0.33em;}

Гиперсылки:

<a href="" target="_blank" rel="external noopener noreferrer"></a>

<a href="tel:+3804441112301">+38 (044) 111-23-01</a>

<a href="mailto:classic@ukr.net">classic@ukr.net</a>

<a href="https://t.me/europa_brend"></a>
<a href="viber://add?number=380971111111"></a>

--- Якорь----
<a href="#top">Наверх</a>
<p id="top"></p>

Спрайты:

 /*--- SPRITE ---*/
[class*='sp-']{display:inline-block; background: url('../images/sp-ikokr.png') no-repeat; overflow:hidden;width: 32px; height: 32px;}
 .sp-logo-1 {background-position: -5px -0px;}

 /*--- Уменьшить спрайт - смотрите здесь пункт - ФОН ---*/
или
-webkit-transform: scale(1.5, 1.5);transform: scale(1.5, 1.5);
~
-webkit-transform:scale(0.4, 0.4) ;transform: scale(0.4, 0.4);


Линии до и после элемента:

<div class="vismotreli"><h5><span>Вы уже смотрели:</span></h5></div>


.vismotreli h5 {position: relative;	overflow: hidden;font-size: 24px;font-weight: 200;text-align: center;color: #777;margin-bottom: 10px;text-transform: uppercase;}
.vismotreli h5 > span {display: inline-block;margin: 0.4em;}
.vismotreli h5 > span:before, h5 > span:after {content: '';position: absolute;width:25%;border-top: 1px solid #777;margin-top:20px;}
.vismotreli h5 > span:before {margin-left: -30%;}
.vismotreli h5 > span:after {margin-left: 6%}

Границы:

{border:2px solid red; border-top-left-radius:25px;}

Списки:

 li {list-style-type: none;} /* Убираем маркеры */
 li {display:list-item;list-style: circle;}  /* Возобновить маркер */

 /* Изображение вместо маркера */   
ul {list-style-image: url(images/book.png);}

 /* Спрайт вместо маркера в тексте */ 
li:before {content: "";float: left;width: 16px;height: 16px;margin: 4px 5px 0 0;background: url(../images/sprite.png) no-repeat -66px -56px;}

/* Спрайт вместо маркера */
.spost li {list-style:none;position:relative;margin-bottom:10px;}
.spost li:before {content: "";width: 16px;height: 16px;background: url(../images/sp.png) no-repeat -1512px -332px;position:absolute;left:-20px;top:5px;}

<dl class="spk-dl">
	<dt><s class=""></s></dt>
	<dd>Better than 99%</dd>
</dl>

<style>
.spk-dl {width:100%; padding:5px 0; font-size:1.2em; display:flex; flex-flow: row wrap;justify-content: space-between;}
.spk-dl dt {width:30px;margin:0; padding:0;}
.spk-dl dd {width: calc(100% - 50px);margin:0; padding:0;}
</style>

---

Счетчик css:

.spisok ul {margin: 0 0 0 40px;}
.spisok > ul > li  {counter-increment:step-counter; list-style:none;position:relative;line-height:2.2;font-size:16px;}
.spisok > ul > li:before {content:counter(step-counter);}

---

Фон:

Универсальная запись для фона:

background:#fff url(../images/sprit-jpg.jpg) 0px -746px no-repeat;

Другие варианты:

/* ---------- Смена размена фона для спрайта: ----------*/
Вариант 1 (если нужен точный размер):
{width: 20px;height:23px;background:url(../images/sprit.png);background-position:0 -308px!important;background-size:20px auto;} 
Вариант 2:
{-webkit-transform: scale(1.5, 1.5);transform: scale(1.5, 1.5);} 
{-webkit-transform: scale(0.7, 0.7);transform: scale(0.7, 0.7);} 

/* ----------- несколько фонов-картинок для 1 елемента: ----------*/
.frame {background: 
      url(/example/image/animate-bg3.png) 90% 90% no-repeat fixed, 
      url(/example/image/animate-bg2.png) 40% 40% no-repeat fixed, 
      url(/example/image/animate-bg1.jpg) no-repeat fixed;
      background-size: auto, auto, cover;
}
/* ----------- несколько фонов-катинок + цвет для 1 елемента: ----------*/
{background: 
url('../images/sprit.png') -15px -15px no-repeat,
url(../images/pogoda/pogoda-spr.png) top center no-repeat,
#000;
}


/* ---------- прозрачный фон: ----------*/
background: rgba( 255, 0, 0, 0.5);
или
background: transparent;

/* ---------- Растянуть фон: ----------*/
background: url(images/mybg.png) 100% 100% no-repeat; 
background-size: cover; 
или
background: url(images/mybg.png) no-repeat center center fixed; 
background-size: cover; 

/* ---------- Сдвигаем фон за границы блока ----------*/
{background-position: right -510px bottom 0px;}

* auto -Если задано одновременно для ширины и высоты (auto auto), размеры фона остаются исходными; если только для одной стороны картинки (100px auto), то размер вычисляется автоматически исходя из пропорций картинки

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

.contain - Масштабирует изображение с сохранением пропорций таким образом, чтобы картинка целиком поместилась внутрь блока.


Сдвиг фона при прокрутке:

/* Пример для фона из двух рисунков */

    background-image: url(images/pattern-left.png), url(images/pattern-right.png);
    background-repeat: repeat-y, repeat-y;
    background-position: left, right;
    background-attachment: fixed, fixed;

Значения:

fixed   -    Делает фоновое изображение элемента неподвижным. 
scroll  -    Позволяет перемещаться фону вместе с содержимым.
inherit -    Наследует значение родителя.
local   -    Фон фиксируется с учётом поведения элемента. Если элемент имеет прокрутку, то фон будет прокручиваться вместе с содержимым, но фон выходящий за рамки элемента остаётся на месте.

Тень:

 box-shadow:25px 32px 50px 0px rgba(49, 49, 49, 0.24);

css тень для выпадающего меню:

 box-shadow: 0px 15px 19px 0px rgba(11, 71, 91, 0.38);

data-name:

Дополнительный элемент с помощью вывода через функкцию attr:

<b class="telhed" data-name="097-479-12-18">
<a href="tel:+380974791218">097-479-12-18</a>
</b>
---- Стиль:
.telhed:after {content: attr(data-name);position: absolute;top: 2px;left: 2px;z-index:-2;}

Выравнивание по центру:

/*Для контейнра с абсолютом */
{position:absolute;top:0;left:0;bottom:0;right:0;}

/*Для контейнра с релатив */
{margin:0 auto;}

Для вставки через content:

.element:before {content: 'с \a0 приветом \0a из \a0 Киева';white-space: pre;}
/* разделители */
\0a — перенос строки
\a0 — неразрывный пробел
\20 — пробел

Стили, зависящие от языка страницы

.test:lang(ru) {/* стили для русского языка */}
.test:lang(uk) {/* стили для украинского языка */}
-------
Указываем текущий язык страницы.
<html lang="ru">…</html>

Псевдоэлементы css:

::after 	Для вывода желаемого контента после элемента
::before 	до элемента, к которому он добавляется
::first-letter 	определяет стиль первого символа в тексте элемента, к которому добавляется
::first-line 	задает стиль первой строки форматированного текста
::selection 	Применяет стиль к выделенному пользователем фрагменту текста



Картика для Retina-экранов (example@2x.png - в 2 раза больше example.png)

.icon {background-image: url(example.png); background-size: 200px 300px;height:300px;width:200px;}

@media only screen and (-Webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min-device-pixel-ratio: 1.5) {
.icon {background-image: url(example@2x.png);}
}


CSS фильтры:

filter: url(resources.svg);
filter: blur(5px);
filter: brightness(0.4);
filter: contrast(200%);
filter: drop-shadow(16px 16px 20px blue);
filter: grayscale(50%);
filter: hue-rotate(90deg);
filter: invert(75%);
filter: opacity(25%);
filter: saturate(30%);
filter: sepia(60%);

/* Применение нескольких фильтров */
filter: contrast(175%) brightness(3%);
Инверсия цвета:
{-webkit-filter: invert(100%);filter: invert(100%);}

Сделать все белым:
filter: brightness(0) invert(1);

Еще вариант:
filter: hue-rotate(-360deg);

Если нужно полностью поменять цвет:
{filter:  sepia() saturate(100000%) hue-rotate(154deg);}


Выпадающее меню через инпут:

bully Реализация меню - здесь


Градиент:

Генератор градиента онлайн - colorzilla.com


СМОТРЕТЬ - примеры градиента на чистом css

background: linear-gradient(to top, #fefcea, #f1da36);

/* Несколько градиентов */
background: linear-gradient(to top, #b5bdc8 0%, #828c95 36%, #28343b 100%);

/* Несколько прозрачных градиентов */
background-image: linear-gradient(to top, rgba(30,87,153,0), rgba(30,87,153,0.8), rgba(30,87,153,1),  rgba(30,87,153,1), rgba(41,137,216,1), rgba(30,87,153,1), rgba(30,87,153,1),  rgba(30,87,153,0.8),rgba(30,87,153,0));

Полоски градиентом.

background-color: #f0f0f0; /* Цвет фона */
background-image: linear-gradient(transparent 50%, #a3e5a3 50%);

Трансформация:

div {transition: background 0.3s ease, color 0.2s linear;}
 /* поворот */
transform: rotate(360deg);
transform: rotateY(360deg);
transform: rotateX(360deg);

 /* наклон */
transform: skewX(20deg);

 /* смещение */
transform:translateX(20px); или  translate(-20px, 20px);

 /* размер */
transform:scale(0.5, 0.5);
transform:scale(1.4, 1.4);

 /* отобразить по горизонтали */
transform:-webkit-transform: scale(-1, 1); transform: scale(-1, 1); filter: FlipV;}

 /* отобразить по вертикали */
transform:-webkit-transform: scale(1, -1); transform: scale(1, -1); filter: FlipV;}

 /* сдвиг по вертекали и горизонтали */
transform: translate(50px, 50px)
transform: translateY(50px);
transform: translateX(50px);

 /* 3-D */
transform: rotate3d(-5,0,-1,16deg);

Вставка видео:

<div class="videofon">
<video autoplay muted controls loop poster="{THEME}/images/video/kosmos.jpg" class="viddeo	">
  <source src="{THEME}/images/video/kosmos.mp4" type="video/mp4">
  <source src="{THEME}/images/video/kosmos.webm" type="video/webm">
  <!-- <source src="{THEME}/images/video/kosmos.ogv" type="video/ogg"> -для старых браузеров -->
</video>	
</div>
<style>
#video-fon {
  width: 100%;
  height: 100%;
  min-width:100%; min-height:100%;
  position:fixed;top:0;left:0;z-index:1;
}


.videofon {position:relative;overflow:hidden;min-width:100%; width:100%; height:646px;background:url(../images/fon-sitka.png); }
.viddeo	 {
  width: 100%; min-width:100%; 
  height: auto%; min-height:auto%;
  position:absolute;top:0;left:0;z-index:-10;
} 

</style>


Селекторы атрибутов:

input[type="text"] {} – выберет текстовый инпут

[class*='bg-'][class^="bg-"] – выберет класы с началом:  bg- .
[div|="val"] – атрибут равен val или начинается с val-, например равен "val-1".
[span*="val"] – атрибут содержит подстроку val, например равен "myvalue".
[a~="val"] – атрибут содержит val как одно из значений через пробел.
[class~="delete"] верно для "edit delete" и неверно для "undelete" или "no-delete".
[class$="val"] – атрибут заканчивается на val, например равен "myval".
a:not([class]) - все ссылки без класса.


Подключение шрифтов

@font-face {
  font-family: 'FontName';
  src: url('webfont.eot'); /* IE9+ Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff2') format('woff2'), /* Super modern browsers */
       url('webfont.woff') format('woff'), /* Modern browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#FontName') format('svg'); /* Legacy iOS */
}

- Смотреть подробнее


Transition:

transition: 0.2s border-bottom ease-in;

transition: 0.5s 0.1s height, 0.5s 0.1s padding, 0.5s 0.1s margin, 0.3s color, 0.6s visibility;

transition: 0.5s 0.1s height, 0.5s 0.1s padding, 0.5s 0.1s margin, 0.3s color, 0.6s visibility;

transition: 0.5s height cubic-bezier(0.73, 0.32, 0.34, 1.5), 0.5s padding cubic-bezier(0.73, 0.32, 0.34, 1.5), 0.5s margin cubic-bezier(0.73, 0.32, 0.34, 1.5), 0.5s 0.2s color, 0.2s background-color;

Перечень свойст которые анимируются через transition - смотреть


Анимация:

 /* Анимация бегущей строки */
.marquee {color:red; font-size:17px;width:200%; animation: marquee 16s linear infinite;}
@keyframes marquee {0% {margin-left:100%} 100% {margin-left:-50%}}

 /* Повтор анимации */
{animation-iteration-count: 3;}
infinite - Анимация проигрывается бесконечно.

 /* Задержка анимации */
{animation-delay: 2s;}

 /* Оставляет на последнем кадре */
{animation-fill-mode: forwards;}

 /* Отменить анимацию / viesdtop-название анимации  */
{animation-play-state: paused;}
начать:
{animation-play-state: running;}

 /* Анимация вправо - разворот на 180 - влево  */
.Ваш стиль {animation: avtom, avtomd2 10s linear infinite;}

@keyframes avtom {
0% {left:440px;transform:scale(1.0, 1.0);}
50% {left:80%; transform:scale(0.5, 0.5);}
51% {}
100% {}
}

@keyframes avtomd2 {
0% { background-position: -604px -278px;}
50% { background-position: -604px -278px;}
51% {left:80%; transform:scale(0.5, 0.5);}
61% {left:65%; transform:scale(0.5, 0.5);}
100% {left:440px; transform:scale(1.0, 1.0);}
}

Функции анимаци - смотреть


Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023