-
Posts
825 -
Joined
-
Days Won
81
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Igor Schnaider
-
Грубо говоря, потому что new просто создает новый объект на основе конструктора, а Object.create – с указанием прототипа. В первом случае в объекте tom инициализируются свойства name, age и gender, но у него не будет определен метод greet. // it's ok tom.name; tom.age; tom.gender; // but Person.greet.call(tom); Во втором случае (Object.create) метод greet будет найден в цепочке наследования (у прототипа).
-
Почему атрибут type еще не на пенсии?
Igor Schnaider replied to CrystalCrystal's question in Web-site Development
Ну старые версии HTML вообще содержали много презентационных элементов, которые со временем заменили соответствующими CSS свойствами (типа <i>, <b> и все такое). Они были исключительно про представление, не про значение. Здесь явно та же история, только речь про атрибут. Однако с упорядоченным списком у атрибута type помимо представления имеется и семантика. Предположу, что в этом причина, почему для <ul> он obsolete, а для <ol> – нет. -
увеличение и уменьшение значения type number
Igor Schnaider replied to cozy_eternity's question in JavaScript
Вам нужно выложить код вместе с разметкой. И делайте это в песочнице, чем такой простыней. Быстрее помогут. -
Именно в этом примере ничего не делает. В вашей callback функции контекст this не используется вообще никак, поэтому thisArg ни на что не влияет. Вот, сравните: const arr1 = ['a', 'b', 'c']; const arr2 = [1, 2, 3]; function each(arr, cb, ctx) { for (let i = 0, l = arr.length; i < l; i++) { cb.call(ctx, arr[i], i, arr); } }; const cb = function(item, i, arr) { console.log(this[i] + item); } each(arr1, cb, arr1); // "aa bb cc" each(arr1, cb, arr2); // "1a 2b 3c" p.s. Эта cb() функция только для примера здесь. Смысла в такой реализации, конечно, нет.
- 1 reply
-
- 1
-
Работа с массивами в Javascript, не правильно работает метод slice
Igor Schnaider replied to denis_alekss's question in JavaScript
На MDN в принципе неплохая документация по методам в языке, почитайте. (По существу если, по 5 элемент, не включая его.) -
Работа с массивами в Javascript, не правильно работает метод slice
Igor Schnaider replied to denis_alekss's question in JavaScript
`Array.prototype.slice` – не мутирующий метод. Он не изменят массив, на котором вызывается, а возвращает новый. В примерах, где вы присваиваете этот новый массив, в цикле обхода по-прежнему обращаетесь к оригинальному, вот и вся проблема. -
Ну BEM – это вообще в целом про компонентный подход. Это примерно то, как мы сейчас все на реакте или вьюхе делаем. Рассматривать BEM только как соглашение по наименованию неправильно. Кстати, буквально недавно Гриненко на стриме как раз об этом рассказывал (ютуб).
-
Ну вообще, здесь имеет смысл смотреть в сторону связки представления с моделью данных. По-хорошему стоит использовать какую-нибудь библиотеку с поддержкой data-binding. Я тут набросал, чтобы идею передать, не для прода))
-
Почитайте про делегирование событий. p.s. Правильнее сделать контролы все-таки кнопками, а не span (с точки зрения семантики).
-
Не надо себе задачу усложнять. Целиком всю картинку на фон ставьте и вращайте целым блоком ее. Вращение текстовых блоков компенсируйте отрицательным вращением вокруг своей оси.
-
bem.info
-
Можете попробовать использовать пользовательские свойства: .component { border: 1px solid var(--theme-main-color); } .component_type_warning { --theme-main-color: red; } .component_type_success { --theme-main-color: green; }
-
1. Отрицательным верхним или нижним полем (смотря у кого забирать). 2. Картинку внутри кругов-блоков можно спозиционировать абсолютно с выходом по размерам за пределы своего контейнера.
-
Крутить в смысле, чтобы пользователь мог с ней взаимодействовать? Без JS, как написали, никак. Если просто повернуть в стилях, без динамики, то смотрите CSS transforms.
-
Обычно такие компоненты tabs называют. Гляньте тут, например.
-
Например. То есть примерно следующее будет: td > div (max-height + overflow) > text.
-
Используйте элемент-обертку. Установите ему максимальную высоту со скрытием переполнения.
-
Символы, которые игнорируются при поиске и копировании
Igor Schnaider replied to Suppilulima's question in HTML Coding
Как вариант, на стороне сервера или прямо на клиенте разбить слова по дефисам и отображать их через стили, а не в самом тексте. https://jsfiddle.net/bq54L732/ -
Как работает Node.JS пошагово с скриптами ?
Igor Schnaider replied to AbaGardon's question in Web-site Development
О том, как браузер работает с DOM, CSSOM и скриптами, как рисует страницу и что останавливает отрисовку, а что нет, можете почитать, например, тут и тут (там вообще много всего полезного, так что можно весь раздел по порядку). По поводу выполнения: если код не асинхронный, то да, будет выполняться сразу и пока не выполнится и не освободит очередь, не отдаст управление другим (асинхронным вызовам или всяким событийным колбэкам). p.s. У ноды нормальная дока, читайте там (вот про блокирующие и неблокирующие вызовы, событийный цикл). И статей в инете про внутренности работы NodeJS тоже полно, не ленитесь искать самостоятельно. -
http://jsbin.com/hovukenipi/ Либо так. Не совсем понял: в случайном порядке все выводились или первый брался случайно, а потом по порядку.
-
http://jsbin.com/reyiwaxivu/edit?js,output
-
Блок с закруглёнными краями и градиентным border
Igor Schnaider replied to Delat's question in HTML Coding
Не в %, а в тех же em/rem. По-нормальному, внутренний радиус должен быть чуть меньше внешнего, но для простоты я взял равный высоте. https://codepen.io/anon/pen/JabaKr -
Блок с закруглёнными краями и градиентным border
Igor Schnaider replied to Delat's question in HTML Coding
Все размеры кнопки, в том числе border-radius, можно привязать к размеру шрифта для пропорционального масштабирования. То, что много стилей в результате, в данном случае не страшно. Для псевдоэлемента не указывайте фиксированные размеры: button:before { content: ''; position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: 10px; /* or just top, right, bottom, left: 10px; without margin */ background-color: #fff; border-radius: inherit; } -
Ну если вы просто использовали глифы в своих стилях, что вам мешает точно так же использовать SVG – меняйте через background. P. S. На их сайте вижу выбор между Font+CSS и SVG+JS.
-
table { table-layout: fixed; } th:last-child { width: 100%; }