const tables = document.querySelectorAll('селектор таблиц');
for (const { tHead, tBodies } of tables) {
const labels = Array.prototype.map.call(
tHead.rows[0].cells,
th => th.textContent
);
for (const { rows } of tBodies) {
for (const { cells } of rows) {
for (const [ i, label ] of labels.entries()) {
cells[i].dataset.label = label;
}
}
}
}
tables.forEach(table => {
table.querySelectorAll('tbody td').forEach(function(td) {
td.setAttribute('data-label', this[td.cellIndex]);
}, Array.from(table.querySelectorAll('thead th'), th => th.innerText));
});
$array = ["zero", "one", "two", "three", "four"];
for (end($array); ($key = key($array)) !== null; prev($array) ) {
print($key . " : " . current($array) . "\n");
}
Registrants from the following European countries are allowed to register domain names under .yt and the other AFNIC TLDs:
AT - Austria
AX - Aland Islands
BE - Belgium
BG - Bulgaria
CH - Switzerland
CY - Cypress
CZ - Czech Republic
DE - Germany
DK - Denmark
EE - Estonia
ES - Spain
FI - Finland
FR - France
GF - French Guiana
GP - Guadeloupe
GR - Greece
HU - Hungary
IE - Ireland
IS - Iceland
IT - Italy
LI - Liechtenstein
LT - Lithuania
LU - Luxembourg
LV - Latvia
MQ - Martinique
MT - Malta
NC - New Caledonia
NL - Netherlands
NO - Norway
PF - French Polynesia
PL - Poland
PM - Saint Pierre and Miquelon
PT - Portugal
RE - Reunion
RO - Romania
SE - Sweden
SI - Slovenia
SK - Slovakia
TF - French Southern Territories
WF - Wallis and Futuna
YT - Mayotte
Restrictions on individuals and corporate entities which are eligible to register a domain name
Any individual residing and any legal entity having its headquarters or principal place of business as specified below may apply to register or renew a domain name in each of the top-level domains:
within the territory of one of the member states of the European Union;
within the territory of the following countries: Iceland, Liechtenstein, Norway and Switzerland.
The domain name holder and the administrative contact must be reachable. As such, both the holder and the administrative contact must provide details of a valid telephone number and e-mail address, including accurate information to establish their identities. While the domain name is active, they must ensure that such information is kept up-to-date at all times.
Both owner and admin contact require a local address within the European Union (please see below list). If one of the contacts has no local address in European Union, you may use our trustee service for both contacts; the trustee service cannot be used only for one of the two contacts.
add_filter( 'acf/settings/show_admin', '__return_false' );
top: -345px;
left: 0px;
right: 0px;
position: fixed;
// 1. Фиксация <body>
function bodyFixPosition() {
setTimeout( function() {
/* Ставим необходимую задержку, чтобы не было «конфликта» в случае, если функция фиксации вызывается сразу после расфиксации (расфиксация отменяет действия расфиксации из-за одновременного действия) */
if ( !document.body.hasAttribute('data-body-scroll-fix') ) {
// Получаем позицию прокрутки
let scrollPosition = window.pageYOffset || document.documentElement.scrollTop;
// Ставим нужные стили
document.body.setAttribute('data-body-scroll-fix', scrollPosition); // Cтавим атрибут со значением прокрутки
document.body.style.overflow = 'hidden';
document.body.style.position = 'fixed';
document.body.style.top = '-' + scrollPosition + 'px';
document.body.style.left = '0';
document.body.style.width = '100%';
}
}, 15 ); /* Можно задержку ещё меньше, но у меня работало хорошо именно с этим значением на всех устройствах и браузерах */
}
// 2. Расфиксация <body>
function bodyUnfixPosition() {
if ( document.body.hasAttribute('data-body-scroll-fix') ) {
// Получаем позицию прокрутки из атрибута
let scrollPosition = document.body.getAttribute('data-body-scroll-fix');
// Удаляем атрибут
document.body.removeAttribute('data-body-scroll-fix');
// Удаляем ненужные стили
document.body.style.overflow = '';
document.body.style.position = '';
document.body.style.top = '';
document.body.style.left = '';
document.body.style.width = '';
// Прокручиваем страницу на полученное из атрибута значение
window.scroll(0, scrollPosition);
}
}
$(document).on('shown.bs.modal', function () { // открытие любого модального окна Bootstrap
bodyFixPosition();
})
$(document).on('hidden.bs.modal', function () { // закрытие любого модального окна Bootstrap
bodyUnfixPosition();
})
<?php
$htmlstr = '<script type="text/javascript" charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Adb7dbcf66a9b7b9da6551f0e57faacc7d56b5eefea90c5a357479ff1bcc47211&width=100%25&height=400&lang=ru_RU&scroll=true"></script>';
$dom = new DOMDocument();
$dom->loadHTML($htmlstr);
$src = $dom->getElementsByTagName('script')[0]->getAttribute('src');
printf("Script src: %s", $src);
const blocks = document.querySelectorAll('.block')
const maxHeight = Math.max(...Array.from(blocks).map(block => {
const { height } = block.getBoundingClientRect()
return height
}))
blocks.forEach(block => {
block.style.height = maxHeight
})
$(document).ready(function() {
function checkWidth() {
var windowWidth = $('body').innerWidth(),
elem = $(".number-bullets"); // лучше сохранять объект в переменную, многократно чтобы не насиловать
// страницу для поиска нужного элемента
if(windowWidth < 480){
elem.removeClass('col-xs-12');
elem.addClass('col-xs-4');
}
else{
elem.removeClass('col-xs-4');
elem.addClass('col-xs-12');
}
}
checkWidth(); // проверит при загрузке страницы
$(window).resize(function(){
checkWidth(); // проверит при изменении размера окна клиента
});
});
window.onReadyState = (e, t) => {
const a = ["loading", "interactive", "complete"],
o = a.slice(a.indexOf(e)),
n = () => o.includes(document.readyState);
n() ? t() : document.addEventListener("readystatechange", (() => n() && t()))
}
window.onReadyState("complete",function(){(function(m,e,t,r,i,k,a)..... })
var fired = false;
window.addEventListener('scroll', () => {
if (fired === false) {
fired = true;
setTimeout(() => {
// Здесь все эти тормознутые трекеры, чаты и прочая ересь,
// без которой жить не может отдел маркетинга, и которые
// дико бесят разработчиков, когда тот же маркетинг приходит
// с вопросом "почему сайт медленно грузится, нам гугл сказал"
}, 1000)
}
});
<?php $category = get_the_category(); ?>
<div class="class" style="background:url(адрес с темой/images/papka/<?php echo $category[0]->term_id; ?>.jpg) no-repeat;"></div>
var footer = $('.footer'),
pageContainer = $('.page-container'),
fixClass = 'navbar-fixed-bottom';
function stickyFooter() {
var windowHeight = $(window).height(),
contentHeight = pageContainer.height(),
footerHeight = footer.height();
footer.removeClass(fixClass);
if (contentHeight <= windowHeight-footerHeight){
footer.addClass(fixClass);
}
}
stickyFooter();
$(window).resize(function () {
stickyFooter();
});
<div class="page-container">
<section class="header"></section>
<section class="nav"></section>
<section class="content"></section>
</div>
<div class="footer">
</div>
# Mobile first
input, textarea, select {
font-size: 16px;
}
# Tablet upwards
@media (min-width: 768px) {
font-size: 14px;
}
const elements = document.querySelectorAll('div[data-atr]')
elements.forEach(elem => elem.style = elem.dataset.atr);
// основные категории
$categories = get_categories( array(
'parent' => 0
) );
foreach ( $categories as $category ) {
// подкатегории
$sub_categories = get_categories( array(
'parent' => $category->term_id
) );
foreach ( $sub_categories as $sub_category ) {
// записи
$posts = get_posts( array(
'category' => $sub_category->term_id,
'posts_per_page' => 5,
'orderby' => 'date',
) );
foreach ( $posts as $post ) {
// вывод поста и фото
}
}
}