CodeWeave | C#, JS, HTML, CSS
150 subscribers
89 photos
1 file
24 links
Сообщество для обмена знаниями и ресурсами по программированию на HTML, CSS, SCSS, JavaScript, jQuery, C#, SQL

Admin - @WesternMikhailCat
Download Telegram
👩‍💻 Наглядная шпаргалка по Flexbox CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳4🔥1👨‍💻1
👩‍💻 Красивая анимация волн в тексте на чистом CSS

➡️ Ссылка на код
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨‍💻2🐳1
👩‍💻 Теги sub и sup в HTML
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🐳2👨‍💻1
📱 Как проверить, целое число или нет с помощью JavaScript?

📌 Способ 1
‼️ Самый простой способ - использовать метод Number.isInteger(), который возвращает true, если число целое, и false, если число является дробным.
const num = 10 

console.log( Number.isInteger(num) )
// true


📌 Способ 2
‼️ Также мы можем использовать оператор %, чтобы проверить есть ли остаток при делении числа на 1 или нет.
const num = 10.3

if (num % 1 === 0) {
console.log ('Число целое')
} else {
console.log ('Число не целое')
}

// Число не целое
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳3👨‍💻2🔥1
📱 Пример использования Task.WhenEach в .NET 9

👀 В .NET 9 Preview 5 появилась новый API Task.WhenEach, который позволяет легко обрабатывать асинхронные задачи по мере их завершения.

Пример ниже выполняет несколько вызовов HttpClient и обрабатывает их результаты по мере завершения:
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
static async Task Main(string[] args)
{
HttpClient client = new HttpClient();
Task<string>[] tasks = new Task<string>[]
{
client.GetStringAsync("https://example.com/1"),
client.GetStringAsync("https://example.com/2"),
client.GetStringAsync("https://example.com/3")
};

await Task.WhenEach(tasks, async task =>
{
string result = await task;
Console.WriteLine(result);
});
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🐳2👨‍💻1
📱 Типы комментариев в C#

💎 Одна линия
//This is a single line comment


💎 Несколько строк
/*This is a multiple line comment
We are in line 2
Last line of comment*/


💎 XML-комментарии
/// <summary>
/// Set error message for multilingual language.
/// </summary>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🐳2👨‍💻1
📱 Что такое зубчатый массив в C#?

👀 Зубчатый массив состоит из элементов, которые также являются массивами, но каждый из этих массивов может иметь разный размер. Благодаря такому составу мы можем называть зубчатый массив «массивом массивов».
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3🔥2🐳1
👩‍💻 Красивая анимация при нажатии и наведении на кнопку при помощи CSS

➡️ Ссылка на код
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🐳2👨‍💻2
📱 👩‍💻Красивая анимация при нажатии на кнопку при помощи Js и CSS

➡️Ссылка на код
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳3🔥2👨‍💻1
👩‍💻 DISTINCT - исключение дубликатов

🤨 Оператор SQL DISTINCT используется для указания на то, что следует работать только с уникальными значениями столбца.

Синтаксис:
SELECT DISTINCT column_name FROM table_name
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🐳1👨‍💻1
📱 Коллекции

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

Примеры:
List<string> people = new List<string>();


Обращение к элементам списка:
var people = new List<string>() { "Tom", "Bob", "Sam" };

string firstPerson = people[0]; // получаем первый элемент
Console.WriteLine(firstPerson); // Tom
people[0] = "Mike"; // изменяем первый элемент
Console.WriteLine(people[0]); // Mike


Длина списка:
var people = new List<string>() { "Tom", "Bob", "Sam" };
Console.WriteLine(people.Count); // 3


Добавление в список:
List<string> people = new List<string> () { "Tom" };

people.Add("Bob"); // добавление элемента
// people = { "Tom", "Bob" };

people.AddRange(new[] { "Sam", "Alice" }); // добавляем массив
// people = { "Tom", "Bob", "Sam", "Alice" };
// также можно было бы добавить другой список
// people.AddRange(new List<string>(){ "Sam", "Alice" });

people.Insert(0, "Eugene"); // вставляем на первое место
// people = { "Eugene", "Tom", "Bob", "Sam", "Alice" };

people.InsertRange(1, new string[] {"Mike", "Kate"}); // вставляем массив с индекса 1
// people = { "Eugene", "Mike", "Kate", "Tom", "Bob", "Sam", "Alice" };

// также можно было бы добавить другой список
// people.InsertRange(1, new List<string>(){ "Mike", "Kate" });
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🐳2👨‍💻2
👩‍💻 HTML data-атрибуты

📌 Data-атрибуты в HTML позволяют хранить дополнительную информацию об HTML-элементах, не влияя на представление или поведение. Они прекрасно подходят для хранения данных, которые должны быть использованы JavaScript без необходимости использования нестандартных атрибутов, ID или классов.

Пример кода:
<div data-role="page" data-hidden="true" data-custom="12345">Пример элемента</div>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🐳2👨‍💻1
👩‍💻 CSS - clip-path

👀 Clip-path позволяет обрезать элементы в соответствии с заданной формой. Можно использовать предопределенные формы (как круг или эллипс) или создать пользовательскую форму с помощью полигона.

Пример:
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);


Пример интерактивного элемента:
<style>
#demo-image {
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
}
</style>
<img id="demo-image" src="path/to/image.jpg" alt="Demo Image">
<input type="range" min="0" max="100" value="50" oninput="updateClipPath(this.value)">
<script>
function updateClipPath(value) {
document.getElementById('demo-image').style.clipPath = `polygon(${value}% 0%, 100% 50%, ${value}% 100%, 0% 50%)`;
}
</script>
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🐳2👨‍💻1
📱 JavaScript и HTML data-атрибутов

👀 Data-атрибуты — это специальные атрибуты, которые начинаются с data- и позволяют хранить дополнительную информацию непосредственно в HTML тегах. JavaScript может легко доступаться и манипулировать этими данными.

Интерактивное демо:
‼️ Задача
Написать код JavaScript, который активирует кнопку, меняя её data-status с inactive на active.
<button data-status="inactive" data-user-id="12345">Activate User 12345</button>
<button data-status="inactive" data-user-id="12346">Activate User 12346</button>
<script>
document.querySelectorAll('button').forEach(button => {
button.addEventListener('click', function() {
if (this.dataset.status === 'inactive') {
this.dataset.status = 'active';
this.textContent = 'Deactivate User ' + this.dataset.userId;
} else {
this.dataset.status = 'inactive';
this.textContent = 'Activate User ' + this.dataset.userId;
}
});
});
</script>
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3🔥2🐳1
📱 try-catch C#

👀 Try-catch используется для обработки исключений, которые могут возникнуть в блоке кода. Блок try выполняет код, блок catch обрабатывает исключение, если оно возникает.

Пример кода:
try {
int divisor = 0;
int result = 10 / divisor;
} catch (DivideByZeroException ex) {
Console.WriteLine("Error: " + ex.Message);
}


❗️ Использование try-catch в C# позволяет вам контролировать выполнение программы даже в случае ошибок.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨‍💻2🐳1
👩‍💻 Условные конструкции в Sass

💎 Условные конструкции в Sass позволяют создавать адаптивные и динамичные стили, делая ваш CSS более гибким и мощным. С их помощью можно использовать условия (@if), циклы (@for, @each, @while) и операторы (==, !=, >, <, >=, <=).

Пример использования:
$theme: dark;

body {
@if $theme == dark {
background-color: #333;
color: #fff;
} @else {
background-color: #fff;
color: #000;
}
}


Преимущества:
💣 Гибкость: Условные конструкции позволяют адаптировать стили под различные условия и требования.
💣 Удобство: Упрощают создание адаптивных и динамичных стилей.
💣 Читаемость: Делают код более структурированным и понятным.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🐳2👨‍💻2
📱 Оператор объединения с null (Nullish Coalescing)

👀 Оператор объединения с null (??) — это мощный инструмент в JavaScript, который упрощает работу с переменными, значение которых может быть null или undefined.

Зачем нужен?
Часто возникает необходимость задать значение по умолчанию, если переменная не задана (равна null или undefined). Раньше для этого использовали оператор ИЛИ (||), но он также срабатывал для ложных значений, таких как 0, false, NaN или пустая строка.

Как работает?
Оператор ?? возвращает правый операнд, если левый операнд равен null или undefined. В противном случае он возвращает левый операнд.

❗️ Пример использования:
let userInput = null;
let defaultInput = userInput ?? "Значение по умолчанию";
console.log(defaultInput); // "Значение по умолчанию"

userInput = "";
defaultInput = userInput ?? "Значение по умолчанию";
console.log(defaultInput); // ""
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻4🔥1🐳1
👩‍💻 Частичные файлы и директива @import в Sass

📌 Частичные файлы и директива @import в Sass позволяют структурировать CSS-код, делая его более организованным и легко управляемым. Это особенно полезно в больших проектах.

Например, создадим два частичных файла:
🥇 _reset.scss
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}


🥈 _variables.scss
$primary-color: #3498db;
$font-stack: 'Helvetica, sans-serif';


Директива @import

Директива @import используется для включения частичных файлов в основной файл стилей. Это позволяет разбивать стили на логические части и легко их объединять.

styles.scss
@import 'reset';
@import 'variables';

body {
font-family: $font-stack;
color: $primary-color;
}


Пример структуры проекта:
// _reset.scss
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

// _variables.scss
$primary-color: #3498db;
$secondary-color: #2ecc71;
$font-stack: 'Helvetica, sans-serif';

// _mixins.scss
@mixin border-radius($radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}

// _base.scss
body {
font-family: $font-stack;
color: $primary-color;
}

h1 {
color: $secondary-color;
}

// styles.scss
@import 'reset';
@import 'variables';
@import 'mixins';
@import 'base';

.container {
@include border-radius(10px);
}


✔️ Использование частичных файлов и директивы @import в Sass помогает поддерживать код чистым, организованным и удобным для масштабирования. Эта практика особенно полезна для крупных проектов, где важно сохранять структуру и упрощать управление стилями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳3👨‍💻3🔥1
📱 Деструктуризация объектов в JavaScript

👀 Деструктуризация — это удобная возможность JavaScript, которая позволяет извлекать значения из массивов или свойств объектов и присваивать их переменным. Это делает ваш код более чистым и понятным.

🔥 С помощью деструктуризации объектов можно извлекать свойства и присваивать их переменным с теми же именами.
const user = { name: 'Alice', age: 25, city: 'New York' };
const { name, age, city } = user;

console.log(name); // "Alice"
console.log(age); // 25
console.log(city); // "New York"

Вы также можете задавать значения по умолчанию и переименовывать переменные.
const user = { name: 'Bob' };
const { name, age = 30, city: hometown = 'Unknown' } = user;

console.log(name); // "Bob"
console.log(age); // 30 (значение по умолчанию)
console.log(hometown);// "Unknown" (переименование и значение по умолчанию)
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻3🔥2🐳1