Translate

Поиск по этому блогу

Показаны сообщения с ярлыком HTML и CSS Дополнение. Показать все сообщения
Показаны сообщения с ярлыком HTML и CSS Дополнение. Показать все сообщения

суббота, 7 апреля 2018 г.

NPM Настройка Gulp и компиляции SASS

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

  1. Node.js (или просто Node) — это серверная платформа для работы с JavaScript через движок V8. JavaScript выполняет действие на стороне клиента, а Node — на сервере. С помощью Node можно писать полноценные приложения. Node умеет работать с внешними библиотеками, вызывать команды из кода на JavaScript и выполнять роль веб-сервера.
  2. NPM (аббр. node package manager) — это стандартный менеджер пакетов, автоматически устанавливающийся вместе с Node.js.
  3. Gulp — это инструмент сборки веб-приложения, позволяющий автоматизировать повторяющиеся задачи, такие как сборка и минификация CSS- и JS-файлов, запуск тестов, перезагрузка браузера и т.д. Тем самым Gulp ускоряет и оптимизирует процесс веб-разработки.


Сегодня мы установим Node.js, Gulp и настроим компиляцию для SASS.

Без долгих вступлений, приступим.

Если у вас не установлен Node.js, то его стоит установить с официального сайта в корневую папку вашего компьютера. Это облегчит вам в дальнейшем использование Node.js и позволит легко прописать для него пути для запуска в KC( здесь и далее КС - командная строка, но обратите ваше внимание на то, что сегодня мы работаем не в КС а Node.js command prompt). Сам процесс установки Node.js очень простой.Выбираете на сайте нужную версию и скачиваете. Соглашаетесь со всеми настройками -> Просто нажимаете "Далее" не убирая, и не ставя никакие галочки.

После установки Node.js появится в списке всех программ. Там можно найти её и через поиск. Открываем Node.js command prompt

Простая настройка NodeJS command prompt
Откройте конфигурацию переменных среды и добавьте эти 2 каталога в переменную Path.

C:\Program Files\nodejs\
C:\Users\your_user_name\AppData\Roaming\npm


И тогда каждый раз, когда вы открываете регулярное окно cmd, команды node.js будут доступны вам.
Если на вашем компьютере Node.js установлен, то Node.js command prompt (КС Node.js, а не КС операционной системы). Здесь вы можете легко проверить его версию набрав node-v

С помощью команды npm ls -g мы можем посмотреть список пакетов установленных глобально.

Установка Gulp

npm i gulp-cli -g Здесь npm- начало всех команд при работе с менеджером пакетов, i- установка (instal) и -g - глобальная установка. Это нужно, для того, чтобы мы могли из любой папки получить доступ к Gulp в дальнейшем. Нажимаем Enter. Ждем, пока от из сети подтянет и установит нужные пакеты.

Теперь мы можем вновь посмотреть их командой npm ls -g. Пакетов будет очень много.Дело в том. что все пакеты зависимы друг от друга и они загружаются в своих зависимостях. Если вы хотите посмотреть только то, что устанавливали сами ( на нулевом уровне вложенности), то npm ls -g --depth=0

Теперь если ввести команду gulp, то можно проверить наличие локальных версий. У нас он напишет, что их не найдено.

Создаем папку проекта на диске (например C://). В КС-node переходим в эту папку в корневую директорию cd путь к папке вашего пректа

Находясь в папке проекта устанавливаем Gupl локально - npm i gulp --save-dev

Внимание! Для корректной работы локально нужно устанавливать туже самую версию, что и глобально!
У меня глобально стоит версия 3.9.1 и поэтому я устанавливаю локально её же:
npm install gulp@3.9.1

В папке нашего проекта появится папка node_modules, куда и закачается наш локальный gulp

Теперь устанавливаем gulp-sass локально - npm i gulp-sass --save-dev Это плагин для gulp, который позволяет делать компиляцию файлов в обычный css.

Посмотреть что установлено npm ls --depth=0

Теперь просто пишем npm init и жмем Enter. Мы создаем package.json для того, чтобы в дальнейшем инициализировать наше приложение в других папках.

Формально, у нас почти все готово к работе. Остается создать gulpfile.js

Мы его создаем в корне нашего проекта и в этом файле нам нужно подключить наши пакеты:

var gulp = require('gulp');
var sass = require('gulp-sass');
 //и что-то выведем в консоль для подтверждения
gulp.task('default', function(){
 console.log("something");
});


Теперь команда gulp выведет в консоль something это говорит о том. что gulp работает!

Если задача не default, а например sass, то вызвать нужно так gulp sass через пробел!

Более подробно об установке и настройке я писал в постах: Gulp

Переходим к компиляции SASS файла

В корне проекта создать папку - project ->styles.scss

В папке gulpfile.js

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', function(){
  gulp.src('./project/**/*.scss')
});


./project/**/*.scss' - ищем ВСЕ файлы с расширением .scss /**/- означает что поиск будет идти и по вложенным папкам В наш код добавляем :

gulp.task('sass', function(){
  gulp.src('./project/**/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('./project'));
});


.pipe(gulp.dest('./project')) - куда все складывать.

Теперь запускаем gulp sass

В папке проекта появится файл style.css

В файле style.scss пишем, например:

$color: #fff;

body{
 background: $color;

       a{
 color: $color;
 }
}


Запускаем команду gulp sass и смотрим в style.css

body{
background: #fff;
}
  body a{
 color: #fff;
}


Это уже скомпилированный файл

Для того, чтобы каждый раз не вводить команду gulp sass мы в файле gulpfile.js добавляем

gulp.task('sass:watch', function(){
  gulp.watch('./project/**/*.scss', ['sass']);
});


Теперь мы запустим gulp sass:watch и он будет следить за всеми изменениями в директории ./project/**/*.scss' и расширением .scss

Теперь можно изменить наш файл style.scss

$color: #f0f;

body{
 background: $color;
 @debug lighten($color, 20%);
       a{
 color: lighten($color, 20$);
 }
}


И тут же изменится и css файл.

Для отслеживания ошибок в файл gulpfile.js добавляем строку - .pipe(sass().on('error', sass.logError)) и того:

gulpfile.js
var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', function(){
  gulp.src('./project/**/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('./project'));
});

gulp.task('sass:watch', function(){
  gulp.watch('./project/**/*.scss', ['sass']);
});


Теперь при ошибке не будет прерываться исполнение скрипта а будет выводиться сообщение об ошибке (Например что такая переменная не найдена)

Завершить задачу (закрыть работу над проектом) - Ctrl + C и сразуy

Теперь если нужен новый проект, то копируем файлы gulpfile.js и package.json Переносим в новый проект (Например project2);
cd project2
cd ../project2
npm up- волшебная команда. которая установит все пакеты и зависимости в новой папке!

Командой npm up мы просто подкачиваем все модули в наш новый проект Не надо все устанавливать и настраивать заново (npm instal gulp или npm instal sass) Мы просто подкачиваем те модули, которые прописаны в файле package.json

Плюсы такого подхода:

  1. кроссплатформенность.
  2. всегда актуальная версия sass.
  3. gulp - все прелести префиксов, копирования и оптимизация картинок.


Хотите освоить самые современные методы написания React приложений? Надоели простые проекты? Нужны курсы, книги, руководства, индивидуальные занятия по React и не только? Хотите стать разработчиком полного цикла, освоить стек MERN, или вы только начинаете свой путь в программировании, и не знаете с чего начать, то пишите через форму связи, подписывайтесь на мой канал в Телеге, вступайте в группу на Facebook.


Удачного кодирования!




                                                                                                                                                             

Телеграм канал - Full Stack JavaScript Developer
Помочь проекту (любая валюта). DONATE

воскресенье, 11 февраля 2018 г.

Как сделать копирование поля в браузер и очистка поля ввода.

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

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

Начнем с разметки html документа:

<body>
  <input id="in" type="text">
  <button type="button" onclick = "reset('in')" >Reset</button>
  <br /><br />
  <input id="out" class="js-copyinput" type="text" >
  <button type="button" onclick="getLink();">Get Link</button>
  <button class="js-inputcopybtn" >Copy Link</button>
</body>


Ничего нового. Обычные текстовые поля input с кнопками button и специфичными идентификаторами id, для привязки к нашему JS - коду.

Добавляем JS - код для копирования



<script>
 var copyTextareaBtn = document.querySelector('.js-inputcopybtn');

 copyTextareaBtn.addEventListener('click', function(event) {
  var copyTextarea = document.querySelector('.js-copyinput');
  copyTextarea.select();

  try {
   var successful = document.execCommand('copy');
   var msg = successful ? 'successful' : 'unsuccessful';
   alert('Copying text command was ' + msg);
  } catch (err) {
   alert('Oops, unable to copy');
  }
 });
</script>


Здесь, я думаю, что все понятно в коде и без пояснений. Берем поле с классом .js-copyinput и копируем его содержимое в браузер. Часть кода - try - catch добавлена для отображения процесса копирования пользователю. Я вывел уведомления в виде alert. Вы можете сделать это иначе или не показывать их вовсе. Но я думаю, что уведомления для пользователя нужны. Иначе не создается уверенности, что копирование информации в браузер прошло успешно.

JS - код для очистки полей.


Для того, чтобы нам очистить любое поле, нам достаточно просто написать в JS - коде, что значение этого поля равно пустой строке.
Например: document.getElementById('out').value = ""; Здесь мы говорим браузеру, что поле со значением out должно быть пустым.

<script>
function reset() { 
if (document.getElementById('in').value != "" || document.getElementById('out').value != "" )  {
document.getElementById('in').value = "";
document.getElementById('out').value = "";
}else {return false}; 
};
</script>
Посмотреть готовый пример можно на сайте Codepen

See the Pen Модератор Ссылки загрузкиГД с копированием и очисткой полей by YaroslavW (@YaroslavW) on CodePen.



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

                                                                                                                                                             

Как сделать ссылку для загрузки файлов с Гугл Диска.

Решил описать самый простой способ создания ссылки на загрузку файлов, папок, документов с Гугл-Диска сразу на компьютер пользователя.

Все началось с того, что я написал несколько полезных расширений для браузера Google Chrome и решил ими поделиться с друзьями, но не тут то было! Просто так сделать ссылку для скачивания со своего диска Google Drive не получилось. Дело в том, что Гугл Диск предоставляет по ссылке только просмотр файлов, мне же хотелось, чтобы при нажатии на ссылку "Скачать" - происходила загрузка файлов, а на ссылку "Просмотр" - можно было посмотреть файлы на диске до загрузки.

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

Добавление атрибута download непосредственно к ссылке не принесло ожидаемого результата. Файлы загружались, но не в zip-архиве, или в существующем формате, а только как некое подобие html-документа.

Вот пример - создал папку на Диске, прошел -> "Включить доступ по ссылке" -> "Получить ссылку".

Для пробы я использовал Codepen. Здесь вы можете посмотреть, что получилось.

See the Pen загрузка папки by YaroslavW (@YaroslavW) on CodePen.



Если коротко, то создал обычную ссылку в которую добавил атрибут download. Путь к файлу - href указал, тот, что получил с диска.

При попытке скачать, произошло то, о чем я говорил выше. Предлагается сохранить файл в формате .htm

См. фото ниже.



Помог поиск в Гугл. Оказывается. что все дело в ссылке. Предложенная ссылка была такая:
https://drive.google.com/open?id=103vuGWLfwofXNR4pdFm986lBhETCbjQL
А для ссылки загрузки требовалась вот такая:
https://drive.google.com/uc?export=download&confirm=no_antivirus&id=103vuGWLfwofXNR4pdFm986lBhETCbjQL

В принципе, на этом можно бы было и закончить этот пост. Потому что все что вам потребуется, это:
  1. Получить ссылку на вашу папку (или документ) на Google Drive
  2. Взять от нее (скопировать) идентификатор -id=///
  3. Подставить в ссылку для загрузки (выделено красным)
Мне простые пути очень нравятся, но что делать, если ссылок много, или человек ну очень хочет разбираться во всем этом, ну и просто захотелось облегчить кому-то труд?

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

Все это я описал в посте.

Ниже предлагаю воспользоваться модификатором ссылок для загрузки файлов с диска.





Код для модификации ссылки я применял очень простой:

function getLink(){
  var custom = document.getElementById('in').value;
  var output = document.getElementById('out');
  
  var fl = custom.indexOf("id=");
  console.log(fl);
  var custPart = custom.substring(fl+3);
console.log(custPart);
  var answer = "https://drive.google.com/uc?export=download&confirm=no_antivirus&id=" + custPart;
  output.value = answer;
};


Понятное дело, что к этому коду требуется соответствующая html разметка.

Подробнее об этом в посте Как сделать копирование поля в браузер и очистка поля ввода.

Удачи вам, друзья и пользуйтесь "Простыми советами" для того, чтобы сделать свою жизнь немного проще, легче и приятнее!

                                                                                                                                                             

вторник, 6 февраля 2018 г.

Как скачать WEBP фото из Google+.

Наверное каждый из нас когда-нибудь сталкивался с вопросом - как скачать фото формата WEBP из Гугл+.

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

Поиск в гугле, нужных результатов не дал. На первых позициях онлайн конвертеры и программы для конвертации webp в jpg файлы.

Пожалуй, что это удобно, если этим пользоваться не часто, но я решил пойти другим путем и расскажу вам о самом простом способе скачать WEBP фото в jpg формате сразу на свой компьютер.

Для справки. Вот что нам говорит Википедия о данном WEBP формате.

WebP (произносится как англ. weppy[4]) — формат сжатия изображений с потерями и без потерь качества, предложенный компанией Google Inc. в 2010 году. Основан на алгоритме сжатия неподвижных изображений (ключевых кадров) из видеокодека VP8. Использует контейнер RIFF.

Для работы с данным форматом существуют открытые библиотека (libvpx) и конвертер (webpconv).



В общем - спасибо Гугл, ты, как всегда, меня порадовал своими обновлениями и улучшениями. :-)

На первых позициях поиска - онлайн конвертеры и программы для конвертацииwebp в jpg файлы.

Пожалуй, что это удобно, если этим пользоваться не часто, но я решил пойти другим путем и расскажу вам о самом простом способе скачать WEBP фото в jpg формате сразу на свой компьютер.

Не могу сейчас сказать точно, но на Mozila Firefox достаточно просто правой кнопкой мыши нажать на изображение и выбрать в меню пункт "Открыть изображение". После этого его можно скачать в приемлемом формате.

Самый простой способ


Для Google Chrome
  1. Выбираем в ленте нужное фото, нажимаем на него правой кнопкой мыши и выбираем в выпадающем меню -"Открыть изображение в новой вкладке".
  2. На фото ниже я это сделал и попробовал сохранить изображение. Не смотря на то, что в адресной строке браузера был указан путь к изображению и даже стояло расширение .jpg в конце строки, скачать его в формате jpg не удалось. См фото ниже.



  3. Нажимаем кнопку F12 (или открываем панель разработчика ->"Исследовать элемент" правой кнопкой мыши.
  4. В открывшейся панели выбираем "Консоль" и вставляем в нее вот этот код:


  5. function googlePlus(){
      var url = document.querySelector('img').src;
      var fL = url.indexOf("\/w");
    var lL = url.indexOf("w\/");
    var c = url.substring(lL+1);
      var a = url.substring(0,fL); 
      location.href  = a + c;
    }
    googlePlus();
    


    Важно!!!

    Если вы видите, что фото пытается сохраниться только как html страница ( расширение .html ), то код вот такой:


    function googlePlus(){
      var src = document.querySelector('img').src;
      var firstLetter = src.indexOf("=");
      var a = src.substring(0,firstLetter);  
      location.href  = a;
    }
    googlePlus();;
    


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



  6. Нажимаем Enter
  7. Код в консоле может исчезнуть введенный вами код или там может появиться предупреждение( например такое - Resource interpreted as Document but transferred with MIME type image/jpeg ), в этом нет ничего страшного, просто это потому, что в этом окне загрузится выбранное вами изображение, но уже не в WEBP, а в jpg формате
  8. Теперь просто кликаем по картинке правой кнопкой мышки и скачиваем ее в формате jpg



Если не получилось ни в одном из вариантов. то посмотрите внизу поста, под заголовком UPDATE.↓

Второй способ



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

  1. Выбираем изображение и правым кликом в выпадающем меню, выбираем "Копировать картинку"
  2. Открываем на компьютере любой удобный редактор изображений, мне для таких целей хватает и PowerPoint, можно GIMP или Photoshop
  3. Сочетанием клавиш Ctrl + V вставляем изображение из браузера в пустой документ.
  4. Обрезаем по формату и сохраняем, как обычное изображение, уже в любом доступном формате


Для ленивых!


Открываете фото в новой вкладке -> "Правая кнопка мыши" -> "Открыть фото в новой вкладке"

Вставить код и нажать Enter

function googlePlus(){
  var src = document.querySelector('img').src;
  var firstLetter = src.indexOf("/w530-");
  var a = src.substring(0,firstLetter);
  var b = src.substring(firstLetter + 15 );
  var url = a + b;
  var link = document.createElement( 'a');
  link.target = "_blank";
  link.download = "img.jpg";
  link.href = url;
  link.click ();
}
googlePlus();


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


Если вы не знаете, как просто и легко скачать без дополнительных программ и расширений фото и видео из других сетей, то вы можете посмотреть их в моем блоге по этим ссылкам:

Как скачать видео с сайта Твиттер вы можете посмотреть в моем посте про blod-видео

Как скачать картинку (фото) из Twiiter

И Как скачать картинку из инстаграм

Как скачать видео с фейсбука

Как скачать видео с ютуба.




UPDATE
В последнее время Google часто меняет свои алгоритмы и если не получилось скачать фото предложенным способом, то можно попробовать ввести в консоль вот такой код:

function googlePlusOdd(){
 var src=document.querySelector('content .ZRciZe img').src;
 var lastL = src.length - 13;
 var a = src.substring(0, lastL );
 location.href = a;
};
googlePlusOdd();


По нечетным дням он срабатывает :-)
Друзья, мне очень важно знать, получается ли у вас все так как у меня и есть ли какие-либо предложения, замечания, пожелания? Есть ли потребность в написании расширения для браузера? Загрузчики фото или видео и для каких сетей вы бы хотели иметь?                                                                                                                                                              

воскресенье, 4 февраля 2018 г.

Изменить цвет фона и текста по желанию посетителя сайта.

Давно собирался написать простой код для изменения цвета текста и фона страницы по желанию пользователя.

Несмотря на то, что в инете есть масса плагинов, расширений для браузеров, но не все пользователи готовы нагружать свои устройства, а у меня есть очень много знакомых, которые воспринимают текст только полностью инвертированный ( черный фон - светлый текст)

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

Таким образом можно было выбрать цвет фона страницы и цвет текста.

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

То что у меня получилось, вы можете посмотреть на сайте Codepen.

See the Pen ColorTxt&BodyRadioButtons by YaroslavW (@YaroslavW) on CodePen.



Если коротко, то у нас есть какой то текст на странице, размещенный в параграфах <p>.

Мы создали два блока с радио-кнопками, которые будут менять цвет фона ( группа кнопок с id = "bgColor") и группа меняющая цвет текста (id="textColor"). Для того, чтобы получить значение value выбранного элемента я использовал jQuery.

В коде подключение jQuery выше скрипта, который в самом низу страницы.

Вы можете сами добавить абсолютно любое количество кнопок, главное прописать значение цвета в их значение value.

Функция запускается при нажатии на кнопку и позволяет создавать самые разные комбинации цвета.

Весь код я поместил в один документ - index.html

<!DOCTYPE html>

<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Document</title>

</head>
<body>

 <h2>Change Back Ground Color</h2>
 <div id="bgColor">
  <label><input type="radio" name="radio" value="white">White</label>
  <label><input type="radio" name="radio" value="yellow">Yellow</label>
  <label><input type="radio" name="radio" value="red">Red</label>
  <label><input type="radio" name="radio" value="green">Green</label>
  <label><input type="radio" name="radio" value="lightgreen">Light Green</label>
  <label><input type="radio" name="radio" value="blue">Blue</label>
                <label><input type="radio" name="radio" value="gray">Gray</label>
                <label><input type="radio" name="radio" value="black">Black</label>
 </div>
 <hr>
 <h2>Change Text Color</h2>
 <div id="textColor">
  <label><input type="radio" name="txc" value="white">White</label>
  <label><input type="radio" name="txc" value="yellow">Yellow</label>
  <label><input type="radio" name="txc" value="red">Red</label>
  <label><input type="radio" name="txc" value="green">Green</label>
  <label><input type="radio" name="txc" value="lightgreen">Light Green</label>
  <label><input type="radio" name="txc" value="blue">Blue</label>
                <label><input type="radio" name="txc" value="gray">Gray</label>   
                <label><input type="radio" name="txc" value="black">Black</label>
 <br />
 <button type="button" onclick="changeColor()">Change Color </button>
 <h1>Header h1</h1>

 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia minima illum quam eveniet facilis ab aliquam. At enim sint, a nihil quidem sunt, atque, nesciunt voluptatibus laborum ipsum neque natus.</p>
 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia eveniet voluptas, dignissimos alias deserunt et assumenda aliquam quod fugit soluta facere consequuntur velit eligendi quis dolor dolore. Ipsum, iusto aspernatur.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nostrum labore rem commodi, eaque adipisci voluptatum nemo totam architecto! Maxime error dolore repudiandae optio in reiciendis, pariatur sapiente, amet. Sint, sit.</p>
 <h2>Header2</h2>
 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia minima illum quam eveniet facilis ab aliquam. At enim sint, a nihil quidem sunt, atque, nesciunt voluptatibus laborum ipsum neque natus.</p>
 <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia eveniet voluptas, dignissimos alias deserunt et assumenda aliquam quod fugit soluta facere consequuntur velit eligendi quis dolor dolore. Ipsum, iusto aspernatur.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nostrum labore rem commodi, eaque adipisci voluptatum nemo totam architecto! Maxime error dolore repudiandae optio in reiciendis, pariatur sapiente, amet. Sint, sit.</p>
 
 <!-- jQuery -->
 <script src="https://code.jquery.com/jquery-3.2.1.js"
  integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
  crossorigin="anonymous"></script>

  <script>
   function changeColor(){
    var bgColor = document.getElementsByName('radio');
    var txColor = document.getElementsByName('txc');
    for(var i = 0; i < bgColor.length; i++){
     if(bgColor[i].checked){
      var bgcolor = $('input[name=radio]:checked').val();
     }
    }
    for(var j = 0; j < txColor.length; j++){
     if(txColor[j].checked){
      var txcolor = $('input[name=txc]:checked').val();
     }
    }
    document.querySelector('body').style.backgroundColor = bgcolor;
    document.querySelector('body').style.color = txcolor;
   };
  </script>
</body>
</html>



Если вы знаете верстку и умеете пользоваться инструментами разработчика, то вам не составит труда найти те элементы, у которых вы хотите изменить свойства и подставить их в две последние строчки кода:

    document.querySelector('Класс или имя селектора ФОН').style.backgroundColor = bgcolor;
    document.querySelector('Класс или имя селектора ТЕКСТ').style.color = txcolor;


Так вы сможете позволить пользователю изменять цвет текста и фона даже в своем блоге.

Маленькие хитрости.

Такое изменение цвета фона и текста будет действовать (сохраняться) до перезагрузки браузером страницы, или пока пользователь не закроет вкладку. При повторном открытии вашего сайта, ему придется все действия по индивидуальной настройке выполнить снова.

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

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

Я выделили их в коде, просто для наглядности.

<!DOCTYPE html>

  <html lang="en">
  <head>
   <meta charset="UTF-8">
   <title>Document</title>

 </head>
 <body>

   <h2>Change Back Ground Color</h2>
   <div id="bgColor">
    <label><input type="radio" name="radio" value="white">White</label>
    <label><input type="radio" name="radio" value="yellow">Yellow</label>
    <label><input type="radio" name="radio" value="red">Red</label>
    <label><input type="radio" name="radio" value="green">Green</label>
    <label><input type="radio" name="radio" value="lightgreen">Light Green</label>
    <label><input type="radio" name="radio" value="blue">Blue</label>
    <label><input type="radio" name="radio" value="gray">Gray</label>
    <label><input type="radio" name="radio" value="black">Black</label>
  </div>
  <hr>
  <h2>Change Text Color</h2>
  <div id="textColor">
    <label><input type="radio" name="txc" value="white">White</label>
    <label><input type="radio" name="txc" value="yellow">Yellow</label>
    <label><input type="radio" name="txc" value="red">Red</label>
    <label><input type="radio" name="txc" value="green">Green</label>
    <label><input type="radio" name="txc" value="lightgreen">Light Green</label>
    <label><input type="radio" name="txc" value="blue">Blue</label>
    <label><input type="radio" name="txc" value="gray">Gray</label>   
    <label><input type="radio" name="txc" value="black">Black</label>
    <br />
    <button type="button" onclick="changeColor()">Change Color </button>
    <h1>Header h1</h1>

    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia minima illum quam eveniet facilis ab aliquam. At enim sint, a nihil quidem sunt, atque, nesciunt voluptatibus laborum ipsum neque natus.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia eveniet voluptas, dignissimos alias deserunt et assumenda aliquam quod fugit soluta facere consequuntur velit eligendi quis dolor dolore. Ipsum, iusto aspernatur.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nostrum labore rem commodi, eaque adipisci voluptatum nemo totam architecto! Maxime error dolore repudiandae optio in reiciendis, pariatur sapiente, amet. Sint, sit.</p>
    <h2>Header2</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Mollitia minima illum quam eveniet facilis ab aliquam. At enim sint, a nihil quidem sunt, atque, nesciunt voluptatibus laborum ipsum neque natus.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quia eveniet voluptas, dignissimos alias deserunt et assumenda aliquam quod fugit soluta facere consequuntur velit eligendi quis dolor dolore. Ipsum, iusto aspernatur.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nostrum labore rem commodi, eaque adipisci voluptatum nemo totam architecto! Maxime error dolore repudiandae optio in reiciendis, pariatur sapiente, amet. Sint, sit.</p>
    
    <!-- jQuery -->
    <script src="https://code.jquery.com/jquery-3.2.1.js"
    integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
    crossorigin="anonymous"></script>

    <script>
     
      if(localStorage.getItem('bgcolor') != null){
        var fon = localStorage.getItem('bgcolor');
        document.querySelector('body').style.backgroundColor = fon;
      }
      if(localStorage.getItem('txcolor') != null){
        var txt = localStorage.getItem('txcolor');
        document.querySelector('body').style.color = txt;
      }
      function changeColor(){
        var bgColor = document.getElementsByName('radio');
        var txColor = document.getElementsByName('txc');
        for(var i = 0; i < bgColor.length; i++){
         if(bgColor[i].checked){
          var bgcolor = $('input[name=radio]:checked').val();
        }
      }
      for(var j = 0; j < txColor.length; j++){
       if(txColor[j].checked){
        var txcolor = $('input[name=txc]:checked').val();
      }
    }
    document.querySelector('body').style.backgroundColor = bgcolor;
    localStorage.setItem('bgcolor',bgcolor);
    document.querySelector('body').style.color = txcolor;
    localStorage.setItem('txcolor',txcolor);
  };

</script>
</body>
</html>



Я, ради эксперимента, поставил на пробном сайте - traningforblog.blogspot.com. Здесь вы можете посмотреть пройдя по ссылке. Вы можете изменить цвет любых элементов, причем в любом количестве, если выберете их и добавите в код (как последние две строчки - примере). А чтобы добавить в блог в виде гаджета, то здесь все просто.

Для этого вам просто нужно перейти во вкладку - "Шаблоны" -> "Добавить гаджет" -> "Добавить HTML&JavaScript"

Код мало чем отличается от приведенного, поэтому дублировать его здесь не буду. Если у вас есть желание. то вы всегда можете его посмотреть, скопировать или скачать себе с моего Google Drive по этой ссылке
Как изменять размер шрифта сайта пользователем.
Как сделать заглавной каждую букву в слове (JS)                                                                                                                                                              

Как сделать заглавной каждую букву в слове (JS)

Наиболее частый вопрос с которым сталкиваются начинающие программисты, студенты и просто блогеры - как сделать заглавной первую букву в каждом слове текста с помощью java script.

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

Пишу два метода. Первый - чистый JavaScript (без jQuery) и второй метод с jQuery.

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

Без долгих вступлений.

Вариант 1 - на чистом JavaScript


<body>
 <div id="text">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eaque iure aliquid perferendis assumenda necessitatibus dolorem aperiam inventore, est, consectetur ex? Quia, omnis illo dignissimos quas iusto cumque, culpa laboriosam laudantium.</p>
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio maxime consequatur necessitatibus, impedit sint repellendus esse? Architecto facere quibusdam nobis repellendus est a corrupti explicabo nemo. Nostrum architecto ullam maxime.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus velit eligendi quisquam harum ut perspiciatis illum quae vero, modi magni esse non vitae, quibusdam laudantium, a repellat adipisci sed dicta.</p>
  <button type="button" onclick=" UpperFirstLetter()">Click Me</button>
 </div>
 <script>
  function UpperFirstLetter(){
     var textArray = (document.getElementById('text').innerHTML).split(' ');
  
  var UpperText = [];
  for(var i = 0; i < textArray.length; i++){
   var word = textArray[i][0].toUpperCase() + textArray[i].slice(1);
   UpperText.push(word);
  }

    document.getElementById('text').innerHTML = UpperText.join(" ");
 }
 // UpperFirstLetter();
 </script>
</body>


В этом примере мы обращаемся к части текста, которая заключена в блок сid = "text". Вы можете изменить это по собственному усмотрению, изменив первую строку скрипта var textArray = (document.getElementById('text').innerHTML).split(' '); на другой "выборщик" - например на querySelector('здесь ваш класс или тэг').

Можете убрать кнопку. Сделать так, что функция будет запускаться сразу после загрузки документа и менять буквы.

Для этого вам стоит только добавитьUpperFirstLetter(); перед закрывающим тегом </script>(в коде выше - закомментировано // UpperFirstLetter();) и конечно же удалить кнопку button из html кода.

Без jQuery


Здесь код функции
    window.onload = function () {
Здесь "запуск"
Например UpperFirstLetter();
};

Или так:
window.onload=function (){
 (function (){
Здесь "Весь ваш код"
 })();
};

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

В случае с jQuery код нужно поместить внутрь функции:


$(document).ready(function() {
    Здесь ваш код с "запуском"
});


Посмотреть готовый пример можно codepen

See the Pen UpperEachLetWithoutJQ by YaroslavW (@YaroslavW) on CodePen.






Второй вариант с jQuery


В этом примере первая функция будет делать заглавной только первую букву, а вторая, первую букву в каждом слове

<body>
  <p>lorem ipsum dolor sit amet, consectetur adipisicing elit. odio maxime consequatur necessitatibus, impedit sint repellendus esse? architecto facere quibusdam nobis repellendus est a corrupti explicabo nemo. nostrum architecto ullam maxime.Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus velit eligendi quisquam harum ut perspiciatis illum quae vero, modi magni esse non vitae, quibusdam laudantium, a repellat adipisci sed dicta.</p>
  <button type="button" class="first">First Word Upper</button>
   <button type="button" class="second">Each Word Upper</button>
   <!-- jQuery -->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
   <script>
    // Выводит первую заглавную букву
$("button.first").on("click", function(){
  var firstLetter = $("p").text()[0].toUpperCase();
  $("p").html(firstLetter + $("p").text().slice(1));
});

// Выводит заглавную букву у каждого слова
$("button.second").on("click", function(){
   var names = $("p").text();
   var arr = names.split(' '); //получаем массив из строки.
   var result = []; // +
   $.each(arr, function(i){
     // добавляем заглавную букву каждому слову в массиве
     var text = arr[i][0].toUpperCase()+arr[i].slice(1);
     result.push(text); // +
   });
  $("p").html(result.join(" "));  // +
});
   </script>
</body> 



Внутри кода даны исчерпывающие комментарии. Вы так же можете изменить и этот вариант кода, как и первый, только не забывайте о том, что теперь вы можете сделать выборку с помощью jQuery. Например - $("button.second") - обращение к кнопке button с классом - second.

Скрипт можно разместить в отдельном файле, но подключить его в документе нужно ниже подключения jQuery.

Посмотреть готовый пример можно codepen

See the Pen UpperLettWord by YaroslavW (@YaroslavW) on CodePen.

Как изменять размер шрифта сайта пользователем.
Изменить цвет фона и текста по желанию посетителя сайта.                                                                                                                                                              

четверг, 25 января 2018 г.

Как сделать всплывающую картинку при уходе с сайта.

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

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

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

Код очень простой и работает в chrome, firefox, opera.

Вам только остается загрузить свою картинку в ваш блог, получить её адрес и поменять его вот в этой строке:

image.src='http://www.beautifulady.it/wp-content/uploads/2017/10/2bl.jpg';

То, что внутри одинарных кавычек - там должен быть url вашей картинки.

Теперь, идем в Шаблоны ->Добавить гаджет -> HTML & JavaScript Смотрите на картинке:



Не забудьте поместить скопированный код внутрь тегов <script></script> !!! Это важно!!!
  function addEvent(obj, evt, fn) {
   if (obj.addEventListener) {
    obj.addEventListener(evt, fn, false);
   }
   else if (obj.attachEvent) {
    obj.attachEvent("on" + evt, fn);
   }
  }
  addEvent(window,"load",function(e) {
   addEvent(document, "mouseout", function(e) {
    e = e ? e : window.event;
    var from = e.relatedTarget || e.toElement;
    if (!from || from.nodeName == "HTML") {

     var block=document.createElement('div');
     block.id='popup';
     var image=document.createElement('img');
     image.src='http://www.beautifulady.it/wp-content/uploads/2017/10/2bl.jpg';
     block.appendChild(image);
     var obj=document.querySelector('body');
     obj.appendChild(block);
     document.getElementById('popup').style.display="block";
     setTimeout(function() {
      document.getElementById('popup').style.display="none";
     }, 2000);
    }
   });
  });


Я сделал так, чтобы картинка показывалась только на короткое время - 2 сек. Вы можете изменить это по своему желанию, или отменить совсем. Для этого вам нужно изменить вот этот участок кода:

     setTimeout(function() {
      document.getElementById('popup').style.display="none";
     }, 2000);


Можно, или убрать функцию setTimeout совсем (оставив только среднюю строку), или изменив время (2000 миллисекунд = 2 сек), на более подходящее.

Теперь, осталось только добавить код CSS в ваш шаблон. Его вы можете изменить по собственному желанию таким образом, чтобы ваша картинка была оформлена соответствующим образом.

Для того, чтобы представлять, как и что вам оформлять, вам стоит понимать, что JS-кодом выше, мы создаем внутри документа новый div с id="popup" и внутри него тег img c url вашей картинки.

<div id="popup">
    <img src="адрес вашей картинки">
</div>


Зная это, вы можете отредактировать ваш CSS код как вам будет угодно, или добавить мой без изменений.

Идем как на картинке: Тема -> Настроить -> Продвинутые настройки -> Добавить CSS







  #popup {
   position: fixed;
   top: 30%;
   right: 40%;
   display: none;
  }
  #popup img{
   width: 100%;
  }


Не забывайте сохранить изменения.


Все!
Таким образом вы получите всплывающую картинку перед уходом пользователя с сайта.

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


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

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

  function addEvent(obj, evt, fn) {
   if (obj.addEventListener) {
    obj.addEventListener(evt, fn, false);
   }
   else if (obj.attachEvent) {
    obj.attachEvent("on" + evt, fn);
   }
  }

  addEvent(window,"load",function(e) {

   addEvent(document, "mouseout", function(e) {
    e = e ? e : window.event;
    var from = e.relatedTarget || e.toElement;

    if ( !from || from.nodeName == "HTML" ) {
     
     var block=document.createElement('div');
     block.id='popup';
     var image=document.createElement('img');
     image.src='http://www.beautifulady.it/wp-content/uploads/2017/10/2bl.jpg';
     block.appendChild(image);
     // var obj=document.getElementById('img_container');
     var obj=document.querySelector('body');
     obj.appendChild(block);

     document.getElementById('popup').style.display="block";
     

var tm =

setTimeout(function() { document.getElementById('popup').style.display="none"; }, 2000);

document.addEventListener("click",function(){ clearTimeout(tm); });

} }); });



UPDATE

Предупреждение перед выходом веб-страницы с помощью JavaScript - jQuery

Во-первых, я хотел бы сказать, что во многих случаях выясняется, что пользователи по ошибке нажимают ссылку на веб-страницу или закрывают текущую вкладку по ошибке. Здесь я покажу вам, как предотвратить эту ошибку, добавив предупреждающее сообщение или предупреждающее сообщение с использованием JavaScript или jQuery.

Предупреждение перед выходом страницы в JavaScript - jQuery



 <script type="text/javascript">
 $(window).on('beforeunload', function(){
 var c=confirm();
 if(c){
 return true;
 }
 else
 return false;
});
</script>


Что делает вышеупомянутый скрипт на jQuery?

Если вы используете этот JavaScript на своей веб-странице, он выдает предупреждающее сообщение перед тем, как покинуть эту страницу.

Кроме того, если вы нажмете на ссылку или щелкните по чему-то, что будет перемещаться от веб-страницы, оно также предложит вам.

Ниже я предоставляю полный пример, чтобы вы могли его правильно понять.

 <!DOCTYPE html>
 <html>
 <body>


 <a href="https://google.com">Google</a>


 <script type="text/javascript">
 $(window).on('beforeunload', function(){
 var c=confirm();
 if(c){
 return true;
}
else
return false;
});
</script>

</body>
</html>


Более ранние версии браузеров позволяли вам установить настраиваемые сообщения в диалоговом окне оповещения, но теперь это невозможно. Для того, чтобы их установить нам требуется подключить библиотеку jQuery По CDN -

<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js”></script >


Или вы можете просто загрузить jquery.min.js и включить это.

Теперь просто протестируйте его в своем браузере.

Если вы нажмете на ссылку google, она предложит вам.

Ниже приведен снимок экрана с предупреждающим сообщением



Если вы попытаетесь закрыть текущую вкладку, появится одно и то же сообщение.

                                                                                                                                                             

понедельник, 22 мая 2017 г.

Пишем ботов

Несколько DIY-руководств:
  1. — Пишем бота для Facebook Messenger:https://tproger.ru/translati…/making-a-python-bot-for-memes/ — руководство по созданию приложения на Python, которое будет присылать свежие мемы, шутки и мотивационные сообщения.

  2. — «Хочу как Дуров»: пишем простой мессенджер: https://tproger.ru/translations/building-messenger/

  3. — Создание веб-приложения для распознавания лиц за час: https://tproger.ru/transla…/face-recognition-app-in-an-hour/

  4. — Пишем сокращатель ссылок при помощи AWS Lambda за 2 часа: https://tproger.ru/translations/aws-lambda-url-shortener/

                                                                                                                                                             

среда, 26 апреля 2017 г.

Материалы для программистов (все темы)

Отличные бесплатные материалы для программистов. Найдется всё:

Полностью такую подборку осилить сложно, так что вот вам более узкие подборки в дополнение:


  1. — Материалы по продвинутым алгоритмам и структурам данных: https://tproger.ru/digest/advanced-computer-science/

  2. — 83 бесплатных материала по грамотному тестированию: https://tproger.ru/digest/free-software-testing-books/

  3. — Материалы по криптографии: https://tproger.ru/digest/crypto/

  4. — Подборка материалов для изучения машинного обучения: https://tproger.ru/digest/machine-learning-materials/

  5. — Самая полная подборка фильмов для айтишников: https://tproger.ru/digest/films/ — не все бесплатные, но вы знаете, что делать 😉

Материалы по отдельным языкам:

Блоги и каналы на YouTube:

Фундаментальные знания для всех
Серьезная литература по программированию для тех, кто хочет овладеть фундаментальными знаниями:
  1. — 4 лучшие книги по C++: https://tproger.ru/books/cpp-books/ — бестселлеры Скотта Мейерса.

  2. — Подборка литературы по теории программирования: https://tproger.ru/books/books-not-for-the-code-monkeys/

  3. — 4 книги о системах контроля версий, которые дадут о них полное представление: https://tproger.ru/books/4-books-about-vcs/

  4. — Подборка книг о компиляторах и обо всем, что с ними связано: https://tproger.ru/books/compiler-design-books/

  5. — 9 полезных бесплатных книг по машинному обучению: https://tproger.ru/boo…/9-free-books-about-machine-learning/

                                                                                                                                                             

суббота, 9 апреля 2016 г.

Текст CSS. Выравнивание текста, цвет текста, подчеркивание в CSS и прочее.

           Подключение CSS

Для того, чтобы подключить к нашему готовому документы HTML таблице стилей мы идем в Notepad++ и нажимаем «Файл», «Новый»(Ctrl+N) и «Сохранить как». После этого нам будет предложено сохранить новый файл в папке. Для этого, я обычно заранее создаю папку в директории - www. и называю ее style.css . В эту папку сохраняем наш файл выбрав для него любое название, но расширение css. Теперь идем в наш HTML документ и внутри тега  <head>  прописываем следующий код:

<link href= “css/style.csstype=”text/cssrel=”stylesheet”>


Вместо
css/style.css – у вас могут быть любые другие значения и названия, но расширение css- обязательно.
Все остальное тоже без изменения. К одному документу можно подключить несколько файлов и наоборот.

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

Селекторы на основе тегов.

Они имеют такое же название, как и теги. Например:

p {
color: #010101;
}


#header {
color: #010101;
}

.new{
color: #010101;
}

#header – селектор по id. Для того, чтобы он сработал нам нужно в HTML документе прописать идентификатор – id= “header” Его можно задать для любой части документа. Дать ему любое название из латинских букв, но нельзя начинать название с цифр.  Название идентификатора вы можете придумать сами, произвольно.
.new- селектор по классу. Его задают в теле HTML документа, присваивая класс.
<p class= "new4"> -это тег тоже одинарный и его закрывать не требуется, как и  (id) идентификатор.
Бывают случаи,  когда нам нужно задать одинаковые параметры различным участкам текста. В этом случае мы воспользуемся групповым селектором, где они прописываются через запятую. Например:

p, #header, .new{
color: #121212;
}

Селекторы  предок – потомок.

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

<body>  является потомком <html> , а тот соответственно его родителем. <img> – потомок <а>, а тот в свою очередь <body> и тд. Если вы представите себе это, то вам будет легко добраться для нужного вам тега и изменить только определенную часть документа.
Записываются такие селекторы таким образом:
Родитель и через пробел потомок. Например:

ul li {
color: #434343;
}

Псевдоселекторы.

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


1)новая
         a:link{
color: #010101;
            }
2) Посещенная
a:visited{
color: #234353
}

3)Наведение курсором
a:hover{
color: #444543
}

4)Активная – во время щелчка
a:active{
color: #787878;
}
А если просто записать

a:{
color: #787878;
}
То это будет цвет ссылки для ВСЕХ состояний.

Изменить шрифт текста

Для этого существует значение селектора:
 font-family: Tahoma, Verdona;
Значение шрифтов можно задавать разные, но стоит помнить, что не все браузеры могут корректно отображать все шрифты. Для надежности стоит воспользоваться сайтом:
Здесь вы можете выбрать один или даже несколько шрифтов, прописав их через запятую.

Стоит отметить, что все шрифты можно условно разделить на группы :
1) sans-serif – без засечек (
Tahoma, Verdona)
2) serif- с засечками (Times New Roman)
3) monospace – (Lucida Console).С одинаковой длиной всех букв. Этот шрифт в основном используется, для специальных текстов отображающих написание программ и тегов.
Следует запомнить, что в ранних версиях HTML, названия шрифтов, состоящих из двух и  более слов, следует писать в двойных кавычках!

Размер шрифта.

Его указывают с помощью font-size

1) В процентах -100% (по умолчанию). Метод хорош для изменения маштабирования страницы пользователем. Сохраняет все пропорции и часто используется.

2)em – условные единицы (1 em – по умолчанию) Так же как и проценты. 1,1=110%

3) px – в пикселях (по номиналу – 16 px)

4) pt – пункты. Это пришло из типографии. Один пункт = 1/72 дюйма. 10 pt = примерно 3,5 мм.

5) ключевые слова:
   а)  
small - маленький- 80%
   б)  medium - средний – 100%
   в large - большой – 120%
Бывают и такие обозначения - xlarge, xxlarge, xsmall, xxsmal и так далее, но они редко используются.

Курсив в CSS

font-style: italic;
Задать его можно практически любому элементу через простые действия. В нужном месте HTML

<span class= “new1”>bbbbb</span>
Для абзацев:
<p class= “new1”>bbbb</p>


.new{
font-style: italic;
}

Жирность тексту задается еще проще

Стоит только прописать  font-weight:normal ;
 или (bold или значение100-900). Стоит помнить, что более 700(это уже полужирный) современные браузеры не поддерживают, а потому, лучше задавать просто bold.

Декорирование текста.

Атрибут: text-decoration:
Можно задать подчеркивание сверху: overline
Снизу: underline
Зачеркивание текста: line-throught
Пример перечеркивания курсива.

.new{
font-style: italic;
text-decoration: line-throught;
}

Часто бывает необходимо убрать подчеркивание с ссылок, которые подчеркнуты по умолчанию. Сделать это очень просто : text-decoration: none;
Это нужно прописать отдельно для ссылок:

a {
        text-decoration: none;
}

 Выравнивание текста.

О выравнивании заголовка по центру блога, вы можете прочитать в моем посте здесь.Вы уже знаете, что для этого есть text-align:left ; (right; center; justify)
Стоит остановиться на значении
в примере:


.new4 {
        text-align: justify;
}

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


Красная строка

text-indent: 35px;
Значение задаем в пикселях , в данном случае.


Межстрочный интервал

Line-height:normal; или 20-30-40px или 2 – коэффициент от текущего, можно задать и дробью – 1,5 (например)


Интервал между словами

word-spacing:
Для коротких слов может потребоваться интервал между буквами
letter-spacing:

Изменения регистра


text-transform:
Значения:
uppercase – все буквы большие;
lowercase – все буквы маленькие;
capitalize – все слова с заглавной буквы;                                                                                                                                                   


Хотите освоить самые современные методы написания React приложений? Надоели простые проекты? Нужны курсы, книги, руководства, индивидуальные занятия по React и не только? Хотите стать разработчиком полного цикла, освоить стек MERN, или вы только начинаете свой путь в программировании, и не знаете с чего начать, то пишите через форму связи, подписывайтесь на мой канал в Телеге, вступайте в группу на Facebook.Пишите мне - kolesnikovy70 почта gmail.com