почему не пишут легкий в реализации SPA без всяких фреймворкахПотому что "загрузить всю страницу в фоне, а не просто через стандартный браузерный механизм перехода по ссылке" - это ещё не SPA.
$('body').on('submit', 'form', function() { ... });
<ul>
<li><img src="https://picsum.photos/150/150" alt></li>
<li><img src="https://picsum.photos/150/150" alt></li>
<li><img src="https://picsum.photos/150/150" alt></li>
<li><img src="https://picsum.photos/150/150" alt></li>
<li><img src="https://picsum.photos/150/150" alt></li>
</ul>
ul {
display: inline-flex;
}
ul:active li:not(:hover) {
filter: brightness(40%)
}
</button>
. При использовании данного тега есть свои плюсы и одним из них является поддержка фокуса по дефолту, т.е если юзать например </div>
, то тогда придётся делать дополнительные телодвижения чтобы кнопка слепленная из тега </div>
- корректно принимала на себя фокус, например, с клавиатуры. Да и к тому же более семантично использовать </button>
для подобных целей. Хотя можно использовать и тег <input>
, но в данной ситуации, он совершенно не к месту. $sum = array_sum(array_column($arr, 'price'));
foreach ($arr as &$n) {
$n['weight'] = number_format($n['price'] / $sum * 100, 2).'%';
}
inArray()
возвращает ... ещё одну функцию, которую только что создала при вызове:function inArray(arr) {
const result = function(x) {
// внутри этой функции будет ещё и доступен
// arr, с которым вызвали inArray()
return arr.includes(x);
};
return result;
}
Т.е. вызов inArray()
с каким-то массивом возвращает всего лишь ещё одну функцию, которая принимает любой аргумент, но ещё и «запомнила» конкретный arr
, с которым её создали.const myFilter = inArray([1, 2, 10]);
это свежесозданная функция, которая для любого аргумента возвращает true/false — есть ли это же значение в массиве [1, 2, 10]
чекбокс.addEventListener('change', e => кнопка.disabled = !e.target.checked);
$colors=['Красное'=>'#FF0000','Красноватое'=>'#FF0000',...];
<?php=make_color_html($colors[$apple->color]??UNKNOWN_COLOR); ?>
<text style="color:<?php = $colors[$apple->color]??UNKNOWN_COLOR; ?>">