【发布时间】:2017-04-27 18:49:18
【问题描述】:
我基本上是在尝试复制CSS Tricks 导航栏的行为,当整个栏的任何部分悬停在上方时,项目标签的动画会从左侧飞入。我正在尝试使用 Web Components 和 Polymer 来做到这一点。
我的 HTML 结构(大致)如下:
index.html
<!-- ... head stuff ... -->
<body>
<my-app></my-app>
</body>
my-app.html
<dom-module id="my-app">
<nav>
<my-nav-item url="/"
text="Home"
icon="home.svg#nav-icon-home"></my-nav-item>
</nav>
</dom-module>
my-nav-item.html
<dom-module id="my-nav-item">
<a href$="[[url]]">
<svg height="20px" width="20px" viewBox="0 0 20 20">
<use href$="[[icon]]"></use>
</svg>
<span>[[text]]</span>
</a>
</dom-module>
CSS 看起来像这样:
my-app.html
nav {
width: 75px;
height: calc(100% - 60px);
background: #222d32;
}
my-nav-item.html
a {
display: block;
text-decoration: none;
color: white;
margin: 25px auto;
text-transform: uppercase;
font-family: 'Exo 2', sans-serif;
font-size: 12px;
}
svg {
fill: white;
margin: 0 auto;
}
span {
display: block;
margin: 10px auto;
transform: translateX(-200px);
transition: 0.1s;
}
span 按预期在屏幕外启动,当我将a:hover span 与transform: translateX(0) 一起使用时,它与从左侧飞入的文本完美配合。但是,当nav 的任何部分悬停在上方时,我希望所有标签都从左侧飞入,就像CSS Tricks' 网站一样。
如何在不破坏关注点分离的情况下设置 nav:hover my-nav-item span transform 属性?
【问题讨论】:
-
您能否提供一个代码笔或其他东西作为该问题的最小示例?
-
由于
span甚至不存在于您的问题示例代码中,因此很难理解标记结构。请在问题中添加一个工作代码 sn-p 否则任何尝试都是猜测 -
猜猜很棒! :) Codepen 似乎不支持自定义元素。你知道另一个支持它们的游乐场/沙盒网站吗?
-
Codepen 为我工作...codepen.io/anon/pen/XRpvmJ
-
@LGSon - 根据Web Components 规范,这不使用
dom-module或HTML 导入。
标签: html css polymer shadow-dom