Кратко
СкопированоФункция anchor возвращает размеры якорного элемента.
Пример
Скопировано
.target { width: anchor-size(width);}
.target {
width: anchor-size(width);
}
Как понять
СкопированоС помощью anchor можно получить значения ширины и высоты якорного элемента. Функция пригодится, если размеры таргет элемента должны зависеть от размеров якоря.
Как пишется
СкопированоФункция anchor принимает три аргумента:
<anchor— имя якоря, размеры которого нужно получить. Необязатальный аргумент, если его опустить, то функция будет ссылаться на значение указанное в свойстве- name> position;- anchor <anchor— параметр, значение которого нужно получить, например,- size> widthилиheight;<length– фолбэк-значение, применится, если функция не нашла якорный элемент, на который мы пытаемся сослаться, или если передали некорректное значение для- percentage> <anchor. Необязатальный аргумент.- size>
.anchor { anchor-name: --my-anchor;}.target { /* Функция anchor-size() будет использовать якорь --my-anchor, указанный в свойстве anchor-name, поскольку в неё явно не передан никакой другой якорь. */ width: anchor-size(width); /* В данном случае функция anchor-size() будет ссылаться на якорь --custom-anchor. Якорь --my-anchor из свойства anchor-name будет проигнорирован. */ width: anchor-size(--custom-anchor width); /* В этом примере target элемент будет иметь width: 200px, если по каким-то причинам функция anchor-size() не сможет получить размеры ширины переданного якоря. */ width: anchor-size(--custom-anchor width, 200px);}
.anchor {
anchor-name: --my-anchor;
}
.target {
/*
Функция anchor-size() будет использовать якорь --my-anchor,
указанный в свойстве anchor-name,
поскольку в неё явно не передан никакой другой якорь.
*/
width: anchor-size(width);
/*
В данном случае функция anchor-size() будет ссылаться на якорь --custom-anchor.
Якорь --my-anchor из свойства anchor-name будет проигнорирован.
*/
width: anchor-size(--custom-anchor width);
/*
В этом примере target элемент будет иметь width: 200px,
если по каким-то причинам функция anchor-size()
не сможет получить размеры ширины переданного якоря.
*/
width: anchor-size(--custom-anchor width, 200px);
}
Стоит отметить, что в качестве аргумента <anchor в функцию можно передавать только значения, соответствующие оси inset-свойства, для которого функция применяется.
В отличие от anchor функция anchor умеет работать со значениями из противоположной оси.
.target { /* Можно задать ширину таргет элемента на основе ширины якоря. */ width: anchor-size(width); /* Также можно задать ширину таргета на основе высоты якоря. */ width: anchor-size(height);}
.target {
/*
Можно задать ширину таргет элемента на основе ширины якоря.
*/
width: anchor-size(width);
/*
Также можно задать ширину таргета на основе высоты якоря.
*/
width: anchor-size(height);
}
Также при работе с функцией anchor можно использовать её значение в вычислениях
.target { width: calc(anchor-size(width) + 50px);}
.target {
width: calc(anchor-size(width) + 50px);
}
и взаимодействовать с логическими свойствами
.target { inset-size: anchor-size(inline);}
.target {
inset-size: anchor-size(inline);
}
Лучше понять работу функции anchor поможет демка ниже.
- Chrome 125, поддерживается
- Edge 125, поддерживается
- Firefox, не поддерживается
- Safari, не поддерживается