当前位置: 首页 > 知识库问答 >
问题:

动画边框长度-底部

杜弘光
2023-03-14

我有个小酒吧。在悬停任何一个菜单项时,我想要获得与这里完全相同的边框底部动画效果(查看左上角的边框或菜单项在悬停时是如何动画的)

我试图在stackoverflow和google上找到类似的问题,但没有找到任何有用的东西。

任何帮助都是非常感谢的。

共有2个答案

曹华荣
2023-03-14

边框的长度不能与它所包围的元素不同。然而,您可以只使用CSS实现类似的效果--带有伪元素。下面的内容怎么样:

div:after{
    position:absolute;
    bottom:0;
    left:50%;
    height:1px;
    width:0%;
    background-color:#444;
    display:block;
    content:'';
    transition:0.3s;
}

div:hover:after{
    left:0;
    width:100%;
}

JsFiddle

叶声
2023-03-14

这就像用开发人员工具检查web一样简单。他们在该页面中所做的是使用:before伪元素在菜单中创建一个元素。在悬停时,他们使用CSS转换(缩放)来改变长度。

Jsfiddle.

span
{
    display: inline-block;
    padding: 6px 0px 4px;
    margin: 0px 8px 0px;
    position: relative;
}

span:before
{
    content: '';
    position: absolute;
    width: 100%;
    height: 0px;
    border-bottom: 1px solid black;
    bottom: 2px;
    -webkit-transform: scaleX(0);
    -ms-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transition: -webkit-transform 0.2s ease-in;
    transition: transform 0.2s ease-in;
}

span:hover:before
{
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
}
 类似资料:
  • 问题内容: 我有以下代码 div宽度为200px,因此border-bottom也是200px,但是如果我希望border-bottom- bottom仅100px而又不更改div宽度,该怎么办? 问题答案: 您可以使用伪元素。例如 无需出于演示目的使用额外的标记。IE8也支持:after。 编辑: 如果你需要一个右对齐边框,只是改变与 如果您需要居中对齐的边框,只需设置

  • 问题内容: 我想在我的WP博客中添加它。这样,每个新的div帖子的边框上都会有此动画。但是问题在于它在SVG中。无论如何,我可以在不使用SVG的情况下使此动画工作,并且我也不想使用javascript。 可以说代码是: 问题答案: CSS可以做到这一点,并且在使用多个背景并使用动画更改其位置时非常简单。 这是一个页面加载后边框连续不断移动的示例。 归功于web-tiki,它有助于修复最初在动画每个

  • 笔:https://codepen.io/anon/pen/zezppk(在Chrome中可视化) 想法:动画一个SVG笔画,使它以长度0(一个等于路径总长度的dashOffset)开头,所以没有呈现任何内容。然后,逐步减小Dashoff集,直到显示出整个SVG笔画。到目前为止,没有问题,这是一个相当普遍的效果,事实上。但我想额外加点:笔画的“起点”也必须逐渐抵消,才能达到笔下的效果。 具体要求是

  • 当前结果:下边框为灰色 所需结果:所有边框均为白色 问题:CSS中的边框颜色设置为白色

  • 问题内容: 有没有办法限制边框的长度。我有一个具有底部边框的,但是我想在的左侧添加一个边框,该边框仅向上延伸一半。 有没有办法在页面上不添加额外元素的方法? 问题答案: 希望这可以帮助:

  • 问题内容: jQuery中 是否有办法为Webkit和Mozilla浏览器中的css3 border-radius 属性设置动画? 我还没有找到可以做到的插件。 问题答案: 我本来希望像… …会工作。但是,我错了:Webkit允许您通过 设置 所有四个角的值,但不允许您重新读取它- 因此,使用上面的代码,动画将始终从0开始而不是从10开始。IE具有相同的功能问题。Firefox 将 让您将其读回,