在当前的 CSS-Tricks 设计中,您可能已经注意到,所有链接在您点击它们时都会向下移动一个像素。 我开始在像 Tim Van Damme 和 Andy Clarke 这样的知名人士的网站上注意到这种效果,所以要承认他们的贡献。
正如您可能想象的那样,它非常简单。 让我们来看看。
因为我们希望在所有链接上实现这种“向下移动”的效果,而链接是内联元素,所以 `margin-top` 不起作用。 我们也不想使用 `padding`,因为它会改变框本身的大小,这可能会导致周围其他元素也发生移动,这是不希望看到的。 最合适的解决方案是position: relative,它允许我们从它们最初的静态定位中移动元素。
a:active {
position: relative;
top: 1px;
}
在这个网站上,这是一个关于向下移动一个像素的放大视图

问题
在这个网站上,我只是使用与上面代码相同的代码,这意味着它会影响网站上的所有链接。 有些人说这感觉有点过头。 我个人很喜欢它,并且喜欢这种一致性,但如果您觉得它有点过头(但仍然喜欢它),请在锚元素上使用更具体的选择器,以便在您网站的更具体区域使用它。
更重要的是,设置链接活动状态的不同定位值是一件需要非常小心的事情。 如果您网站上有任何被 **绝对** 定位的链接,让它们的活动状态更改为相对定位将会(可能)导致它们飞走并变得不可点击。 您可以通过在这些链接的活动状态下保持绝对定位来逐个解决此问题,甚至可以将它们的 `top` 值提高一个单位(或将 `bottom` 值降低一个单位)。
简单而有效
感谢分享
对于标签/图像来说可能有点奇怪,但对于文本链接来说它肯定很有效,并且是一个不错的增强功能。 可能在 iPhone 上也很好用
@chris
你应该把它放到代码片段区域。
我喜欢它,它非常微妙,但不知何故,它感觉更有互动性,这种微妙的移动让你感觉更自然。
感谢分享这一点。
对我来说感觉很花哨。 哦,还有“正如您可能想象的那样,它非常简单。”应该改为“正如您可能想象的那样,它非常简单。”
或者也许他指的是“非常简单”而不是“非常简单”……?
在看到它在这里几天后,我现在觉得它很烦人,并且是糟糕 CSS 的标志。 当我点击一个链接并看到它跳动时,对我来说它看起来像是设计师搞砸了一些东西,并且没有使链接更易用,反而让它看起来像一个错误。
哦,还有“made then” 应该改为 “made them” …… 关于石头和玻璃屋,你可能应该反省一下,Billy Boy!
我喜欢它……尤其是只有在悬停时才出现下划线
我以前并没有注意到它,但它确实很有效。
我认为它是那种你不会立刻注意到的东西,但却能增强体验。
感谢发布。
在正确的时间发布了正确的帖子,
今天我正在处理侧边栏,要包含这种效果,最后终于做出来了。
感谢 Chris…
:)
我昨天注意到了,这真是一个不错的效果。 你试过对角线方向吗? 例如
top: 1px; left: 1px;
我觉得它应该这样做,但我不知道。
我完全同意! 当我看到你的评论时,我立刻在我的网站上尝试了一下,并且很喜欢它。 它肯定会包含在下一个版本中。
很棒的小技巧,谢谢
你看,这就是我不断回到这里的原因。 都是关于细节,尤其是微妙的细节。 谢谢!
很棒的小提示。 我要把这个添加到我的正文文本中!
一个很棒的技术,我会把它付诸实践。 谢谢!
这是我第一次直接使用一个提示。 复制,粘贴,完成工作。 对我正在做的网站来说,这是一个简洁的小补充。 非常感谢。
我在按钮链接上使用它,但我不太喜欢在文本链接上使用它。
不错的技巧
应该谨慎地应用这种样式。 对于具有 `position: absolute` 属性的链接,它会在点击时破坏链接位置。
很喜欢! 我正在努力想象一个场景,我会在那里使用一个具有 `position: absolute` 属性的文本链接,但我确实很感谢 Xitong 的提醒。
它最棒的地方正如同 Chris 在描述中所说的那样:微妙。 如果它在悬停时发生移动,可能会有点突兀。 但在点击时快速移动一下? 太棒了!
有没有办法在用户执行以下操作时“取消”活动状态
- 点击并按住链接
- 将鼠标移开链接(停留在当前页面)
我在活动状态下卡住了,对于文本链接来说这不是什么大问题,但对于按钮来说就相当明显了。
我刚刚实现了这个,但将其保留为
p a:active, span a:active
以防止它影响任何重要内容。 效果很好。 谢谢!
我想仅仅更改颜色的时代已经过去了!
很棒的内容,谢谢。 :)
很酷的想法,但我注意到如果你点击并按住,但将鼠标移开链接,它不会向上移动。 也许在默认状态下设置一个 `top: 0`?
它太微妙了,直到我仔细观察才注意到它,所以我不认为它太过分了 :)
很棒且微妙的效果……如果可能的话,小于 1 像素的效果甚至会更好……
一个非常不错且微妙的效果。 我将它与更改一些图标的链接上的阴影的透明度相结合,使用不同的 `rgba()` 设置,使它看起来像图标按钮也正在被按下。
关于这一点的一件事是,如果鼠标落在你移动链接的 1 像素上,它就不会点击过去。(最上面的那一行)
我在我自己的项目中注意到了这一点,我当时将它移动了几个像素,一些点击就无法正常工作。
我想对于 1 像素来说,这几乎是一个无足轻重的问题,但如果你计划将链接移动更远,就需要注意这一点。
微妙似乎确实是关键。
确实如此,我刚注意到这一点。
我用 2px 尝试了一下,也发现了同样的问题 :(
没问题。添加一些填充。
填充也出现同样的问题…
太棒了!我正在我正在构建的网站上实现类似的东西,但我使用的是 margin-top。我喜欢它用于文本链接,但我经常把它用于按钮。
我曾经尝试过这个,发现当颜色设置为稍微深一点的颜色时,用户会更喜欢它,例如
a:active {
position: relative;
top: 1px;
color: blue;
}
从 #3680A1(此页面使用)。它使看起来上面的元素稍微投下阴影。此页面在悬停时将颜色更改为更深的色调,因此效果并不完全相同。(悬停时颜色更浅,但按下时颜色更深看起来不错。)
我的意思是,这是感觉上的问题,对吧?尽可能接近就好。
很棒!
谢谢
我在你发布新设计的那一刻就注意到了这一点,并且惊讶地发现你将它设置在了所有锚标记上。
我认为在一个小巧且不进行任何疯狂操作的网站中它是可以接受的,但我会更多地基于单一类型进行操作,例如,仅限于按钮、导航链接,或者可能带有 "ui-nudge" 或类似类别的链接。
很高兴看到你在这方面做了一些小细节,我钦佩你的工作。
我喜欢这种风格!
做得太好了,我喜欢…
这是一个很酷的效果。它确实改善了用户体验,即使只是一点点。感谢 Chris 与我们分享它。
@Greg McAusland:感谢提醒我们,如果你不小心,它可能会造成的一些问题。也许有一个方法可以解决这个问题?
我从来没有想过要这样做,效果真的很棒,看起来也很漂亮!它确实给它一种按钮的感觉。所有这些细节上的小东西,真的可以让一个网站变得很棒。
我认为我会经常使用它!你能设置定位,使它下降到一个角度吗?例如,top:1px right 1px 等等?我想只有尝试才能知道 :p
感谢 Chris
感谢 Chris,我从未想过这一点,但很高兴你指出了网页设计的更细微之处。就像这些更小的细节一样。
我想知道你是如何创建发表评论表单上的淡出效果的。看起来很酷。
干杯
Steven
效果很好,很微妙,并且使用户体验略微改善。
不错,我正在使用这个
嗨 Chris,
你是否有关于如何在右栏内容框上创建你所放置的阴影悬停效果的教程?我喜欢那个!
谢谢!
Mike
嗨 Chris,我一直很喜欢你的东西…
等等… 我可以不喜欢这个吗?:)
我想你可以。
新手问题… 如何使文字为一种颜色,而下划线为另一种颜色?
这不是下划线,而是底部边框
color: red;
border-bottom: 2px solid blue;
我喜欢它。我认为它添加了网页设计师追求的细节,但也明确地向最终用户表明它确实是一个按钮。
我不得不仔细看两次,需要更换新的眼镜处方。
我喜欢它,感谢你的分享
非常棒的东西。不过,当点击链接、按住鼠标按钮然后离开链接时,会遇到一个小问题。这样做会导致链接向下偏移 1px,直到你在页面中的其他任何地方点击。如我所说,一个小问题。
这种情况发生在我们打算点击一个链接,然后改变主意时。不知道是否有基于 CSS 的解决方案。
在 FF 3.6 中测试过
干杯,
João Cunha
这完全很简单,但却非常有效。就像所有最好的技巧一样。
我喜欢它 Chris - 非常微妙,但绝对添加了一些东西。我认为我会尝试将其融入到我即将进行的网站重新设计中
就我个人而言,我一开始会错过链接,因为蓝色太接近内容的颜色了。尤其是在段落中查看没有下划线的链接时。
而且你知道什么可以改善它的微妙性吗?在链接下方添加一条浅灰色线。尤其是当你打算用于链接的蓝色太接近内容时。
无论如何,这是我个人的两分钱。:)
有没有人尝试过将 text-shadow 声明与按钮结合使用?我正在将活动链接设置为
position: relative;
top: 2px;
left: 1px;
color: #22aaff; /* 浅蓝色 */
text-shadow: #000000 1px 0px 1px;
现在,我只需要让活动按钮看起来正确。
我还没有,但我可能会研究一下。与其让文字在用户上移动,不如在用户做一些人们通常不会从文字链接中期待的事情时,看起来更像一个按钮。在悬停时对文字使用阴影可能使其看起来更平滑。