Рубрика «Песочница» - 202

Одним из основных принципов верстки является гибкость. А именно возможность легко вносить какие-либо изменения и ничего при этом не сломать.

Умение правильно обращаться с margin и padding играет очень большую роль в этом деле.

Основные принципы:

  1. Отступы идут от предыдущего элемента к следующему.
  2. Отступ задается последнему возможному элементу в доме.
  3. Отступы нельзя задавать для независимых элементов ( бэм блок ).
  4. У последнего элемента группы, отступ обнуляется (всегда).

Отступ задается последнему возможному элементу в доме

margin(ы) задаются от предыдущего элемента к следующему, от первого ко второму, сверху вниз, слева направо.

imageimage

Это значит.что такие свойства как margin-left и margin-top не используются ( бывают исключения ). Если нужен отступ сверху, то используется padding-top для родителя. По тому же принципу padding-left для родителя.

image

image

Важно соблюдать осмысленную структуру во всем, можно назвать это семантикой. Отступы идут в направлении потока дом дерева, блок сам себя не толкает.
Читать полностью »

Началось все с того, что я решил выучить PHP, а что из этого вышло — смотрите ниже.

После прочтения уроков по php, я захотел написать свой шаблонизатор для Express с синтаксисом очень похожим на php.

Идея моей реализации простая — на место html подставлять функцию, при выполнение которой на экран будет добавлен этот htm, в качестве аргументов этой функции передавать тот код, который встраивается в специальных inline блоках (<?=, ?>) в html, которые в свою очередь встраивают javascript значения в html. А весь остальной код собирать в один файл и при рендеринге скармливать интерпретатору.Читать полностью »

На данный момент человечество обладает информацией об огромном количестве химических соединений, однако все они получены при нормальных, земных, условиях: средняя температура нашей планеты, её магнитное поле, давление в одну атмосферу — всё это наводит на мысль о том, что говорить даже о 50% открытых соединений ещё очень рано.

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

image

Читать полностью »

Как-то тихо и незаметно подошло время женитьбы моего старшего брата. Из всех свадебных хлопот на меня выпало задание подготовить пожелания молодым в виде надписей на стенах комнаты. Но поскольку такие простые поручения мне давать нельзя ввиду полнейшей расхлябанности, выделенный месяц на подготовку плакатов съели другие не менее важные дела. Соответственно, к задаче я приступил непосредственно вечером перед свадьбой, когда все магазины уже были закрыты. Однако, в таких сжатых условиях самое время проснуться творческой жилке, что и произошло. В результате новобрачные получили свои поздравления, а копилка моих знаний и эго программиста слегка приросли в объёме.
Читать полностью »

Это рассказ о новой разработке RemObjects — компании, которая начинала с компонентов для Delphi, а сейчас выпускает целый набор компиляторов Elements для всех популярных платформ: Windows, .NET, JVM, Android, iOS, Cocoa. В набор входят компиляторы с языков Oxygene (клон Паскаля-Delphi), C#, Swift (бесплатный), на любом из которых можно писать для любой указанной выше платформы. И вот теперь в этот список добавляется новый язык — Java. Чем не повод для статьи на Habrahabr?
Читать полностью »

Данный пост — перевод данной статьи

Я работал над новым проектом на React и Redux. Раньше при разработке проектов на React, я работал в одиночку, но в этот раз я был частью команды, где каждый член команды имел некоторый опыт в React и Redux. Проект должен был быть выпущен в продакшн за короткое время.
Читать полностью »

Как я нашел мотивацию для себя и что же это такое

Чем отличается квалифицированный специалист от неквалифицированного? Как выбрать сотрудников к себе в компанию? Я думаю, что каждый, кто занимается подбором (не глупый PR-менеджер, а опять же специалист, который заинтересован в развитии компании и качестве сотрудников, в ней работающих) задавал себе подобный вопрос. Но, увы, ответа на этот вопрос не будет. На эту тему можно много говорить, но каждый, скорее всего, останется при своем мнении.
Читать полностью »

Можно пойти на выставку компьютерной графики. Действительно, если есть компьютерная графика, то должны быть и такие выставки. Для интересующихся есть альтернатива: учебник, идущий в комплекте с одним векторным графическим редактором (впрочем, почему бы его здесь еще раз не назвать — это Inkscape).
Читать полностью »

Для читателей Geektimes (а еще для своего мужа) я составила список интересных Si-Fi фильмов ушедшего 2016 года. Фильмы, указанные ниже, доступны в сети и имели относительно небольшой или неуспешный релиз, поэтому я предполагаю, вы пропустили, по крайней мере, некоторые из них.
Читать полностью »

Пронумеруем строки и столбцы доски размером nxn номерами от 0 до n-1. Номер клетки будет иметь вид (i,j), где i – номер строки, j – номер столбца. Координаты ферзей будут иметь вид (i,p(i)).

Пускай у нас уже расставлены k ферзей в строках от 0 до k-1.

Тогда ферзь с координатами (i,p(i)), где i<k, может бить клетки в строке k с координатами (k,p(i)), (k,p(i)-(k-i)) и (k,p(i)+(k-i)), при этом нас интересуют только клетки с номерами столбцов от 0 до n-1.

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

SV(k)=Sum(i=0..k-1,2^p(i))
SD1(k)=Sum(i=0..k-1,2^p(i) shr (k-i))
Если p(i)-(k-i)<0, то 2^p(i) shr (k-i)=0.
SD2(k)=Sum(i=0..k-1,2^p(i) shl (k-i)) and (2^n-1)
Если p(i)+(k-i)>=n, то 2^p(i) shl (k-i) будет отброшено при помощи and (2^n-1).
S(k)=SV(k) or SD1(k) or SD2(k)

где ^ – возведение в степень, or – побитовое или, and – побитовое и, shl – сдвиг влево, shr – сдвиг вправо.

В данном случае используется Sum вместо or, т.к. на любой вертикали или диагонали не может быть более одного ферзя.

Если записать рекуррентно, то получится

SV(0)=0
SD1(0)=0
SD2(0)=0
SV(k+1)=SV(k) or 2^p(k)
SD1(k+1)=(SD1(k) or 2^p(k)) shr 1
SD2(k+1)=((SD2(k) or 2^p(k)) shl 1) and (2^n-1)
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js