Bazaprogram.ru

Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Чем отличается css от css

Чем отличается css от css

Форум » Web-Раздел » Начинающему вебмастеру » Какая разница между CSS и CSS3 (CSS и CSS3 и свойства для форматирования html-элементов)

Какая разница между CSS и CSS3

Дата: Воскресенье, 2019-06-02, 23:21 | Сообщение 1

Сначала давайте рассмотрим некоторые основы CSS. Так как в коде сайта CSS работает только в тандеме с HTML, чтобы придать сайту его статическую структуру и стиль. В то время как HTML определяет какие элементы находятся на странице, где CSS определяет как эти элементы HTML отображаются.

Например, если теги HTML отмечают раздел текста как header страницы, то применение CSS сообщает компьютеру, что все что отмечено на этом сайте header, который должно отображаться в определенном стиле, например, жирным синим шрифтом.

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

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

Что нового в CSS3?

CSS3 является новейшим стандартом для языка CSS, который разрабатывается с 2005 года. Он обратно совместим со старыми версиями CSS, что имеет новые свойства, которые отлаживают предыдущие особенности и расширяют возможности CSS2, и даже имеет некоторые JavaScript-подобные возможности. CSS3 также решает ряд проблем, связанных с разработкой мобильных приложений, учитывая адаптивный дизайн и устраняя проблемы, вызванные несовместимостью Adobe Flash на мобильных устройствах. В сочетании с JavaScript, CSS3 обладает множеством функциональных возможностей Flash, это с точки зрения анимации и интерактивности.

Вот 7 основных вещей, которые отличают CSS3 от его предшественников.

1. Мобильный первый менталитет

CSS3 по своей природе поддерживает адаптивный дизайн и оснащен для обработки медиа-запросов. Медиа-запросы — это вызовы, выполняемые кодом для определения устройства и размера экрана на котором пользователь просматривает сайт. Это добавляет новые возможности адаптивного дизайна в репертуар CSS.

2. Модульный код

Одним из самых важных достижений является то, что CSS3 разделен на модули. Все старые спецификации CSS были перенесены в новую версию и разделены на более мелкие части, где также добавлены некоторые новые модули.

Другие модули CSS3 включают в себя:

Селекторы: разработчики могут редактировать элементы по имени, классу, типу, атрибуту и так далее.

— Модуль Box Model: описывает подход к созданию согласованности между HTML-элементами на странице или блоками. Применяя поля границы и отступы к содержимому блока, разработчики могут очистить область вокруг элемента, присвоить ему границы.

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

Текстовые эффекты: CSS3 включает в себя эффекты тени, переполнение текста, которое скрывает текст и становится слишком длинным для его элемента, разрыв слова, где автоматическое разбиение текста, чтобы он помещался в рамку, и перенос текста — все, что экономит дизайнерам много времени.

3. Поддержка веб-шрифтов

До CSS3 дизайнеры могли использовать только безопасные для сети шрифты, чтобы быть на 100 процентов уверенными, что шрифты всегда будут отображаться одинаково на всех компьютерах. Безопасные веб-шрифты — это шрифты, которые каждый компьютер устанавливает и распознает. Если бы дизайнер использовал обычные шрифты, такие как Times New Roman или Arial, он мог бы в значительной степени гарантировать, что любой пользователь будет просматривать свой сайт так, как задумано. Однако, если они захотят использовать более редкий шрифт, если он не поддерживается машиной пользователя, он по умолчанию вернется к веб-безопасному шрифту.

Дизайнеры теперь могут запускать веб-шрифты в CSS3, специальные шрифты, подобные тем которые доступны через Google Fonts и Typecast. Эти шрифты можно либо загрузить на сервер и запустить с помощью кода CSS, либо получить доступ непосредственно из его источника с помощью сценария, который вызывается прямо в коде CSS, что открыло мир возможностей для дизайнеров.

4. Позволяет быстрее разрабатывать и быстрее загружать

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

5. Создание 2D и 3D преобразований, анимации и переходов

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

6. Новые цвета и эффекты изображения

CSS3 поддерживает новые цвета (RGBA, HSL, HSLA) и цвета градиента, а также позволяет корректировать непрозрачность. Еще одна важная вещь — это поддержка закругленных углов изображения, эффект, который требовал большого форматирования и работы в Photoshop, чтобы достичь ранее.

7. Исправил некоторые досадные проблемы с выравниванием

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

В чем разница между Sass и SCSS?

Я много писал в последнее время о Sass , но по некоторым недавним комментариям я понял, что не все четко себе представляют, что такое Sass . Внесем немного ясности:

Когда мы говорим о Sass , мы обычно имеем в виду препроцессор и язык в целом. Мы говорим, например, « мы используем Sass », или « вот примесь Sass ».

Между тем, Sass (препроцессор) допускает два различных синтаксиса:

  • Sass , также известный как синтаксис с отступами;
  • SCSS , CSS-подобный синтаксис.

История

Первоначально Sass являлся частью другого препроцессора — Haml , который придумали и написали разработчики из Ruby.

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

Как видите, по сравнению с обычным CSS разница ощутимая! Даже если вы пользователь Sass (препроцессора), вы можете видеть, что это сильно отличается от того, к чему мы привыкли.

Переменная обозначается через ! , а не $ , символ присвоения значения = , а не : . Довольно необычно.

Но так Sass выглядел до версии 3.0, выпущенной в мае 2010 года, в которой был представлен совершенно новый синтаксис под названием SCSS или Sassy CSS .

Его целью было приблизить синтаксис Sass к CSS , сделав его более совместимым с CSS :

SCSS определенно более близок к CSS , чем Sass . Разработчики Sass потрудились над тем, чтобы сделать оба синтаксиса ближе друг к другу, заменив ! (знак переменной) и = (знак присвоения) на $ и : из CSS .

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

Плюсы синтаксиса Sass с отступами

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

Даже лучше! В нем не нужны @mixin или @include , когда достаточно простого символа: = и + .

Также синтаксис Sass обеспечивает чистые стандарты кодирования из-за использования отступов. Так как неправильный отступ может сломать всю таблицу стилей .sass , здесь в первую очередь обеспечивается, чтобы код был чистым и надлежащим образом отформатированным.

Существует только один метод составления кодов Sass : составлять их правильно.

Но будьте осторожны! Отступы имеют логическое значение в Sass . Когда применяется отступ блока селектора, это означает, что это вложенный селектор.

Простой факт смещения .element-b на один уровень вправо означает, что он является дочерним элементом от .element-a , что приводит к изменению результативного CSS -кода. Так что, будьте осторожны с отступами!

Как сторонний наблюдатель, я думаю, что синтаксис на основе отступов, вероятно, больше понравится команде, работающей в основном с Ruby/Python , нежели команде PHP/Java программистов (хотя не факт, я хотел бы услышать и обратные мнения).

Плюсы SCSS синтаксиса

Для начала — он полностью совместим с CSS . Это означает, что вы можете переименовать файл CSS в .scss , и он будет работать, как ни в чем не бывало.

Создание SCSS , полностью совместимого с CSS , всегда было приоритетом для поддержки Sass с самого момента релиза SCSS , и, на мой взгляд, это серьезный аргумент.

Кроме того, они стараются следить, за тем, что может стать валидным синтаксисом CSS в будущем, и реализовать это (отсюда @directives ).

Так как SCSS совместим с CSS , он практически не требует дополнительного обучения. Синтаксис почти тот же: в конце концов, это просто CSS с некоторыми дополнениями.

Это важно для начинающих разработчиков: они смогут быстро начать составлять код, почти ничего не зная о Sass .

Кроме того, он более читаем, так как конкретные конструкции уже имеют смысл. Когда вы видите @mixin , вы знаете, что это объявление примеси; когда вы видите @include , вы знаете, что это вызов примеси.

Нет никаких привязок, и все имеет смысл без интерпретации.

Также почти все существующие инструменты, плагины и демо-презентации для Sass разрабатываются с помощью синтаксиса SCSS . Этот синтаксис становится все более ориентированным на профессионалов и выбирается ими по умолчанию (если не является единственно возможным).

В основном в силу указанных выше причин. Например, становится все труднее найти подсветку чистого синтаксиса Sass с отступами; как правило, доступны только варианты подсветки SCSS .

Заключение

Выбор в любом случае остается за вами, но если у вас нет действительно веских причин использовать синтаксис с отступами, я бы настоятельно рекомендовал использовать SCSS , а не Sass . Это не только более просто, но и более удобно.

Как-то я попробовал синтаксис с отступами, и он мне понравился. Особенно его краткость и простота. Я уже хотел было перевести все свои рабочие коды на Sass , но в последнюю минуту передумал.

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

Кроме того, обратите внимание, Sass никогда не обозначается аббревиатурой из прописных букв, независимо синтаксис ли это или язык программирования. В то время как SCSS всегда обозначается большими буквами. Хотите узнать почему? Ознакомьтесь с SassnotSASS.com !

Данная публикация представляет собой перевод статьи « What’s the Difference Between Sass and SCSS » , подготовленной дружной командой проекта Интернет-технологии.ру

Препроцессор SASS. Изучаем SASS для быстрой верстки. CSS компилятор для быстрой верстки шаблонов и макетов сайта.

Что такое SASS и SCSS? Обзор препроцессора SASS. Разница между SASS и SCSS

  • 17.06.2016
  • SASS и SCSS, Верстка сайтов, Вопрос-ответ, Что такое?
  • Комментариев нет

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжим рубрику Верстка сайтов, в которой этой записью я открою новый раздел Препроцессор SASS и SCSS. Хочу обратить твое внимание, что на моем блоге есть раздел Препроцессор LESS, вести этих две ветки я буду параллельно, чтобы ты мог в итоге выбрать, какой из CSS препроцессоров тебе больше по душе и чем ты будешь пользоваться для создания своего сайта. Замечу, что эти CSS препроцессоры похожи друг на друга и изучив один, ты с легкостью освоишь другой, но отличаются они синтаксисом и некоторыми особенностями реализации, а так же у них немного разные возможности.

Что такое SASS и SCSS? Обзор препроцессора SASS. Разница между SASS и SCSS

А теперь давай я напишу о том, что ты узнаешь из этой публикации: 1) ты узнаешь о том, что такое CSS препроцессор SASS и SCSS; 2) поймешь в чем разница между SASS и SCSS; 2) прочитаешь о том, как SASS и SCSS расширяют возможности CSS и как они помогут тебе ускорить процесс верстки макета; 3) получишь полную, но краткую информацию о возможностях рассматриваемого CSS препроцессора; 4) узнаешь о плюсах и минусах использования SASS и SCSS на своём сайте и в своих проектах.

Что такое препроцессор SASS и чем отличается SASS от SCSS?

SASS – это препроцессор CSS, основной задачей которого является расширение возможностей написания CSS кода, препроцессор SASS в разы ускоряет написание кода CSS и в разы облегчает его обслуживание. SASS представляет собой язык, похожий на язык программирования, который облегчает и ускоряет разработку CSS. SASS является компилируемым язык и в чистом виде браузер его не обрабатывает. Когда говорят о препроцессоре SASS, часто упоминают SCSS.

Давайте сразу определимся, чем отличается SASS от SCSS и в чем между ними разница. На самом деле разница между SASS и SCSS только в синтаксисе: разные правила написания кода, но функционал SASS и SCSS полностью одинаков.

Раз CSS препроцессор SASS – это компилируемый язык, то у этого языка должен быть компилятор, который бы преобразовывал код, написанный на SASS или SCSS в чистый CSS код, компилятор SASS и SCSS написан на языке Ruby, поэтому всем владельцам платформ Windows прежде чем использовать SASS или SCSS рекомендуется установить Ruby.

Обратите внимание: SASS и SCSS генерируют чистый, кросс-браузерный и валидный код, но, чтобы CSS код был чистым: 1) вы должны знать CSS; 2) вы должны знать принцип работы SASS или SCSS, в противном случае на компилятор нечего пенять.

В препроцессоре SASS и SCSS реализовано очень много фишек, которые в разы ускорят разработку кода CSS. В процессе изучения SASS мы будем параллельно изучать и SCSS: все что я буду писать для SASS, будет работать так же и на SCSS, примеры будут как для SASS, так и для SCSS.

Функционал SASS, расширяем возможности CSS с SASS и SCSS

Давайте поговорим о функционале SASS и SCSS, заодно и поймем: почему SASS и SCSS в разы ускоряет разработку HTML макетов и облегчает обслуживание сайтов. Сам по себе процесс CSS верстки сайта довольно интересное занятие, но иногда оно превращается в нудное и кропотливое, тогда вам на помощь приходит CSS препроцессор SASS и SCSS, который сделает вашу работу не такой нудной. Сейчас вы убедитесь в том, что SASS и SCSS действительно вам помогут, я просто перечислю функции этого CSS препроцессора.

  1. Препроцессор SASS и SCSS поддерживает вложенные правила, которые делают CSS код намного более читабельным, логичным и естественным, язык HTML поддерживает строгую иерархию, в CSS такой иерархии нет. А вот в SASS и SCSS можно сделать написание правил иерархичным, так же вложенные правила SASS позволяют избежать повторов в коде.
  2. Препроцессор SASS и SCSS позволяют указывать родительские селекторы. В HTML элементы страницы могут быть вложены друг в друга и внешний элемент – родительский, вложенный элемент – дочерний. В SASS и SCSS это можно отразить.
  3. Препроцессор SASS и SCSS поддерживает вложенные свойства. В CSS много свойств, начинающихся с font, в SASS и SCSS вы можете откинуть слово font и писать: size, weight и другие.
  4. Препроцессор SASS и SCSS поддерживает шаблонные селекторы, благодаря которым все стили, заданные одному селектору, можно задать другому, просто написав одну строчку кода.
  5. В SASS и SCSS есть комментарии, но они есть и в CSS.
  6. SASS и SCSS используют язык SassScript, у которого есть интерактивная оболочка.
  7. Препроцессор SASS и SCSS поддерживает работу с переменными, чтобы можно было изменять повторяющиеся значения в одном месте, а не пролистывать весь CSS файл.
  8. SASS и SCSS могут работать с различными типами данных: строки, списки, ассоциативные массивы и даже цвет – это тип данных в SASS.
  9. SASS и SCSS дают возможность производить операции, которых нет в CSS: можно производить математические операции, операции с цветами, операции с логическими значениями и операции со списками.
  10. В SASS и SCSS можно задать порядок действия при операциях круглыми скобками.
  11. Препроцессор SASS и SCSS имеет набор встроенных функций, которым можно передавать параметры.
  12. Переменные в SASS и SCSS можно использовать при именовании селекторов и при именовании CSS свойств.
  13. Переменные в SASS и SCSS могут иметь значения по умолчанию, что очень часто позволяет избегать ошибок при написании кода.
  14. SASS и SCSS поддерживают все CSS директивы.
  15. В SASS и SCSS есть логические конструкции, которые называются логические директивы: if, for, each, while.
  16. Препроцессор SASS и SCSS поддерживает миксины. Миксины в SASS и SCSS позволяют повторно использовать стили.
  17. Препроцессор SASS и SCSS поддерживает пользовательские функции, которые вы можете самостоятельно написать, а потом использовать сколько вам угодно.
  18. На выходе компилятора/интерпретатора SASS/SCSS можно получать CSS файлы, которые оформлены по-разному (разница в пробельных символах).
  19. Препроцессор SASS кэширует свои файлы, то есть он сохраняет в виде CSS самые часто используемые куски кода и не компилирует их повторно.

Я сделал лишь краткий, но полный обзор возможностей препроцессора SASS и SCSS. Надеюсь, что он вам помог решить: стоит или нет тратить время на изучение данного CSS препроцессора, но в одном вы можете быть уверены точно: CSS разработка с SASS в разы быстрее, но только в том случае, когда вы уже знаете CSS и изучите SASS. На первых парах использование SASS может внести некоторые затруднения, которые в дальнейшем окупятся.

Недостатки и преимущества SASS и SCSS

Давайте рассмотрим недостатки и преимущества препроцессора SASS и SCSS. Начнем мы, конечно же, с преимуществ препроцессора SASS и SCSS:

  1. SASS и SCSS позволяют разрабатывать чистый CSS код и при этом использовать некоторые конструкции из программирования.
  2. Препроцессор SASS и SCSS позволяет в разы ускорить написание CSS кода.
  3. SASS и SCSS поддерживают все языковые конструкции CSS всех версий.
  4. Вы можете использовать SASS и SCSS с любым известным CSS фреймворком.
  5. SASS и SCSS используют вложения и разные полезные функции.
  6. У SASS и SCSS очень много преимуществ, но ощутите вы их только тогда, когда в полной мере изучите данный препроцессор.

Препроцессор SASS и SCSS имеет и недостатки, давайте на них посмотрим:

  1. Если вы плохо знаете CSS, то SASS и SCSS вам ничем не помогут, хотя можно совместить полезное с полезным.
  2. На изучение всех функций SASS и SCSS потребуется довольно большое количество времени.
  3. Если к файлу с расширением .sass или .scss подключится несколько разработчиков и начнут править его одновременно, то у компилятора/интерпретатора могут возникнуть проблемы.
  4. А еще инспектор HTML элементов, встроенный в браузер, не всегда сможет вам помочь, если вы используете SASS или SCSS.

Мы познакомились с SASS и SCSS, узнали в чем разница между SASS и SCSS, разобрались с недостатками и преимуществами SASS и SCSS, но главное, сделали для себя вывод, что SASS и SCSS действительно помогают ускорить работу по верстке HTML.

Почему мы решили отказаться от LESS в пользу SCSS: сравнение препроцессоров CSS

Дата публикации: 2018-05-22

От автора: прежде всего, что такое препроцессор? Вкратце препроцессор – это программа, модифицирующая данные под входные требования другой программы. Препроцессоры CSS – это скриптовый язык, расширяющий возможности обычного CSS переменными, правилами вложенности, функциями и логическими блоками.

Зачем мне его использовать?

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

С переменными вам не нужно искать и заменять все упоминания красного в стилях. Вы один раз определяете значение переменной, например, «primary color», а затем используете эту переменную как значение.

Значение primary color меняется в одном месте. Можно также импортировать CSS файлы из других источников, не думая о количестве сетевых запросов, так как перед компиляцией их все можно объединить в один файл.

Благодаря вложенной природе CSS препроцессоров, вы получите компактный код с таким же результатом. В основе LESS и SCSS лежит принцип DRY, который расшифровывается как «Don’t repeat yourself» или «не повторяйтесь».

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Что не так с LESS?

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

SCSS использует символ $ для определения переменных, а LESS – @. Поскольку CSS тоже использует символ @ для медиа запросов, импортов и keyframe анимации, это может ввести разработчиков в заблуждение.

Символ $ не используется в CSS. Символ @ есть в SCSS, но он используется для директив @if , @else , @each, @for и @while.

Хотя этот сценарий реален не для всех, лучше использовать разные идентификаторы для разделения элементов.

SCSS поддерживает традиционные логические выражения типа if/else, блоки и циклы. Guarded миксины в LESS легче для глаза, но их сложнее понять.

Можно сделать с помощью LESS…

… или просто с помощью SCSS.

LESS определяет лишь один guarded миксин. Поэтому нельзя просто передать второй аргумент и обработать его в том же миксине, продублировав код для всех возможных сценариев. На самом деле, LESS (меньше) значит больше (игра слов).

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

С таким кодом головной боли больше…

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

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

Хотя это лично мое мнение, мне кажется, что SCSS в целом лучше обрабатывает значения вычислений и математические значения.

Что с этим не так?

LESS, с другой стороны, гораздо сложнее. Например, когда я использую его, я не пытаюсь проводить вычисления. Но даже если бы я это делал, с каких пор 100% минус 50px равно 50%?

LESS, почему ты игнорируешь значения с единицами изменений?

Зачем ты заставляешь меня учить твои костыли, когда я уже знаю CSS?

И последнее. Благодаря проекту LibSass, у SCSS есть много оберток для других языков, например, C, Go, PHP, Python, Dart и т.д.

Почему мы решили отказаться от LESS в угоду SCSS?

Пока мы разрабатывали JotForm Cards, нам нужно было предварительно обрабатывать значения переменных – предварительная компиляция и кеширование на стороне сервера одновременно; и все это нужно было сделать идеально.

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

Мы не начали цикл разработки с целью перехода от LESS к SCSS. Но на полпути, занимаясь этими незначительными проблемами, отсутствие достойной обертки для LESS стало последней каплей.

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

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

Автор: Kaan Kavuştuk

Редакция: Команда webformyself.

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Читать еще:  Comic sans ms css
Ссылка на основную публикацию
Adblock
detector