-
Posts
825 -
Joined
-
Days Won
81
Content Type
Profiles
Forums
Calendar
Store
Posts posted by Igor Schnaider
-
-
31.12.2020 в 21:15, CrystalCrystal сказал:
Это в справочниках пишут: "осуждается в HTML5, взамен используйте свойства CSS".
Ну старые версии HTML вообще содержали много презентационных элементов, которые со временем заменили соответствующими CSS свойствами (типа
<i>
,<b>
и все такое). Они были исключительно про представление, не про значение. Здесь явно та же история, только речь про атрибут. Однако с упорядоченным списком у атрибутаtype
помимо представления имеется и семантика. Предположу, что в этом причина, почему для<ul>
он obsolete, а для<ol>
– нет.- 1
-
Вам нужно выложить код вместе с разметкой. И делайте это в песочнице, чем такой простыней. Быстрее помогут.
-
Именно в этом примере ничего не делает. В вашей
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
-
На MDN в принципе неплохая документация по методам в языке, почитайте. (По существу если, по 5 элемент, не включая его.)
-
`Array.prototype.slice` – не мутирующий метод. Он не изменят массив, на котором вызывается, а возвращает новый. В примерах, где вы присваиваете этот новый массив, в цикле обхода по-прежнему обращаетесь к оригинальному, вот и вся проблема.
-
Ну BEM – это вообще в целом про компонентный подход. Это примерно то, как мы сейчас все на реакте или вьюхе делаем. Рассматривать BEM только как соглашение по наименованию неправильно.
Кстати, буквально недавно Гриненко на стриме как раз об этом рассказывал (ютуб).
-
Ну вообще, здесь имеет смысл смотреть в сторону связки представления с моделью данных. По-хорошему стоит использовать какую-нибудь библиотеку с поддержкой data-binding.
Я тут набросал, чтобы идею передать, не для прода))
-
Почитайте про делегирование событий.
p.s. Правильнее сделать контролы все-таки кнопками, а не span (с точки зрения семантики).
-
22 часа назад, torsar сказал:
Можно ли блок (div) сверстать так, как на изображении
(смотрите вложение). Выделено красным квадратом.
Чтоб div был конусом с закругленным основанием.
Не надо себе задачу усложнять. Целиком всю картинку на фон ставьте и вращайте целым блоком ее. Вращение текстовых блоков компенсируйте отрицательным вращением вокруг своей оси.
-
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. Картинку внутри кругов-блоков можно спозиционировать абсолютно с выходом по размерам за пределы своего контейнера.
-
10 часов назад, torsar сказал:
Нужно именно без js крутить, средствами css3.
Крутить в смысле, чтобы пользователь мог с ней взаимодействовать? Без JS, как написали, никак. Если просто повернуть в стилях, без динамики, то смотрите CSS transforms.
-
Обычно такие компоненты tabs называют. Гляньте тут, например.
-
Например.
То есть примерно следующее будет: td > div (max-height + overflow) > text.
-
Используйте элемент-обертку. Установите ему максимальную высоту со скрытием переполнения.
-
Как вариант, на стороне сервера или прямо на клиенте разбить слова по дефисам и отображать их через стили, а не в самом тексте.
-
О том, как браузер работает с DOM, CSSOM и скриптами, как рисует страницу и что останавливает отрисовку, а что нет, можете почитать, например, тут и тут (там вообще много всего полезного, так что можно весь раздел по порядку).
По поводу выполнения: если код не асинхронный, то да, будет выполняться сразу и пока не выполнится и не освободит очередь, не отдаст управление другим (асинхронным вызовам или всяким событийным колбэкам).
p.s. У ноды нормальная дока, читайте там (вот про блокирующие и неблокирующие вызовы, событийный цикл). И статей в инете про внутренности работы NodeJS тоже полно, не ленитесь искать самостоятельно.
-
Либо так.
Не совсем понял: в случайном порядке все выводились или первый брался случайно, а потом по порядку.
-
-
56 минут назад, Delat сказал:
Как высчитать пропорции для border-radius в %?
Не в %, а в тех же em/rem. По-нормальному, внутренний радиус должен быть чуть меньше внешнего, но для простоты я взял равный высоте.
-
Все размеры кнопки, в том числе
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%; }
- 1
Создание объекта JavaScript
in JavaScript
Posted
Грубо говоря, потому что
new
просто создает новый объект на основе конструктора, аObject.create
– с указанием прототипа.В первом случае в объекте
tom
инициализируются свойстваname
,age
иgender
, но у него не будет определен методgreet
.Во втором случае (
Object.create
) методgreet
будет найден в цепочке наследования (у прототипа).