Мой запрос странный, так как я использовал другой подход, который полностью сработал и намного более чистый. Однако специалист по SEO позвонил мне и сказал, что моя структура не совсем удобна для роботов Google.
Итак, вот ситуация (пожалуйста, не судите об этом, я знаю, что есть другие способы сделать то, что я пытаюсь достичь, вообще не используя дочерние фрагменты):
Это моя составляющая:
class Container extends LitElement {
static get tagName() {
return 'container';
}
static get styles() {
return css`
${unsafeCSS(styles)}
`;
}
render() {
return html`
<article class="o-container">
<slot></slot>
</article>
`;
}
}
defineOnce(Container.tagName, Container);
export default Container;
Вот как я его использую:
<footer>
<div class="o-footer__collection">
<div class="o-footer__main">
<h1 class="o-footer__title-desktop">
me & me
</h1>
<button
class="o-footer__accordion-button"
>
<h1 class="o-footer__title">
you & you
</h1>
<span
class="o-footer__accordion-button-caret o-footer__accordion-button-caret--open"
>
blabla
</span>
</button>
<ul
class="o-footer__main-content-panel o-footer__main-content-panel--open"
>
<li
class="o-footer__main-content-panel-list-item"
>
<a
href="https://google.com"
target="_blank"
>Contact</a
>
</li>
</ul>
</div>
</footer>
Видите ли, все эти дочерние элементы попадают в slot
область компонента. Изначально эти дочерние элементы были частью компонента и имели стиль. Теперь они вне его, и стили больше не применяются. Кто-нибудь знает, как обойти эту проблему? В документации я обнаружил, что вы можете использовать атрибут css :: slotted (), но, видимо, он не работает. Или я, наверное, еще что-то не так сделал? Я также попытался поместить тег стиля в render
html, но это оказало лишь незначительное влияние.
Я не знаю, на каком маршруте мне следует сосредоточиться. Любая помощь приветствуется. ИМХО стиль должен быть частью самого компонента, а не зависеть от того, кто его использует. Но этот элемент слота сломал все, хотя остальная конструкция осталась прежней.
container
недействителен, ноmy-container
,container-one
илиspecial-container
в порядке. - person Intervalia   schedule 29.05.2019