酷炫的动画效果往往更能吸引眼球,下面我将分享纯CSS中,hover的时候出现下划线动态飞入的技巧。

1.下划线从左侧飞入:

div::before{
content:"";
width:50px;
position:absolute;
  display:inline-block;
  border-bottom:1px solid red;
bottom:0;
left:-100px;}
div:hover::before{
left:0;
transition:all linear 1s;}

  步骤:首先是设置div为相对位置(relative,主要用于before子元素的定位。因为绝对位置的定位要求其父元素的position属性值不能为static,而relative优点在于能保留原来的位置,故选用relative)。

     其次通过伪元素before创建div元素下的第一个位置的子元素,设置其为绝对位置(absolute),同时修改其显示属性为行内块(display:inline-block;)。

       第三是设置伪元素before的位置,将其定位到div父元素的前面,同时设置div隐藏区域以外的区域(overflow:hidden;)

       第四是设置当div被hover时,伪元素before回到div父元素的最左侧,并设置持续时间。

    这样就完成了下划线在hover时从左侧并入。如果要从右侧出现,则只需把相应位置进行更新即可。

2.下划线从中间向两边伸出

div::before{
content:"";
width:0px;
position:absolute;
  display:inline-block;
border-bottom:0px solid red;
bottom:0;
left:50%;
transition:all linear 1s;}
div:hover::before{
left:0;
width:50px;
border-bottom-width:2px;
}

  下划线从中间向两边伸出大部分与下划线从两边伸出相似,不同之处在于:

    首先设置子元素位置在中间,即left:50%,同时width:0px;

    其次hover时设置子元素位置右中间变到最左侧(即left:0;);同时设置子元素的宽度(即width:50px)。

  这样就能实现两个过程:一是下划线从中间向左侧整体移动,二是下划线向右侧延伸。

下划线hover下动态出现技巧的更多相关文章

  1. iOS - UIButton设置文字标题下划线以及下划线颜色

    创建button设置可以折行显示 - (void)viewDidLoad { [super viewDidLoad]; UIButton * button = [[UIButton alloc] in ...

  2. TabTopAutoLayout【自定义顶部选项卡区域(带下划线)(动态选项卡数据且可滑动)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 自定义顶部选项卡布局LinearLayout类,实现带下划线且可滑动效果.[实际情况中建议使用RecyclerView] 备注:如果 ...

  3. python 面向对象三 访问权限 下划线 双下划线

    一.双下划线 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问. ...

  4. PostgreSQL解决"Abc_de_fghijkl_mn" 首字母小写去掉下划线并且下划线后面的第一个字母大写或首字母大写去掉下划线并且下划线后面的首字母大写的js

    select "lower"(substr('Abc_de_fghijkl_mn', 1, 1)) || substr(replace(REGEXP_REPLACE(INITCAP ...

  5. python 单下划线/双下划线使用总结

    文章转自:http://blog.csdn.net/pfm685757/article/details/45918575

  6. 详解 Python 中的下划线命名规则

    在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ...

  7. Python的下划线_

    1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,"_"代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准C ...

  8. 使用CSS去除 去掉超链接的下划线方法

    我们可以用CSS语法来控制超链接的形式.颜色变化,为什么链接一定要使用下划线和颜色区分呢? 其主要原因主要是考虑到   1.视力差的人 2.色盲的人 ... 下面我们做一个这样的链接:未被点击时超链接 ...

  9. Python 下划线

    单下划线 "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和自类对象自己能访问到这些变量. 例子:以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口 ...

随机推荐

  1. Servlet3.0-使用注解定义过滤器(Filter)

    本人正在学javaweb,遇到了在eclipse中,servlet3.0过滤器需不需要配置web.xml文件?通过实践得出结论,不用配置,只需要@WebFilter(filterName=" ...

  2. 自适应的两端对齐:text-align:justify

    <!DOCTYPE HTML> <html> <head> <title>文本两端对齐 by hongchenok</title> < ...

  3. Qt样式表之三:实现按钮三态效果的三种方法

    按钮的三态,指的是普通态.鼠标的悬停态.按下态.Qt中如果使用的是默认按钮,三态的效果是有的,鼠标放上去会变色,点击的时候有凹陷的效果. 但是如果自定义按钮实现三态效果有三种方法,一种是设置背景图,主 ...

  4. 当不知道基本数据类型的取值范围时,可以通过max_value等来查询

    public class Demo03{ public static void main(String[] args){ System.out.println("int MAX " ...

  5. 机器学习概念之特征处理(Feature processing)

    不多说,直接上干货! 肯定也有不少博友,跟我一样,刚开始接触的时候,会对这三个概念混淆. 以下是,特征处理.特征提取.特征转换和特征选择的区别! 特征处理主要包含三个方面:特征提取.特征转换和特征选择 ...

  6. javascript 找出数字数组中最大的数

    找出数字数组中最大的数 var Match = (function(){ var arr = null; var len = 0; return { max:function(arr,len){ ar ...

  7. 访问TomCat出现的一些异常

    BUG-01:访问页面时出现: HTTP Status 500 servlet.init() for servlet DispatcherServlet threw exception...... 解 ...

  8. PHP设计模式 原型模式(Prototype)

    定义 和工厂模式类似,用来创建对象.但实现机制不同,原型模式是先创建一个对象,采用clone的方式进行新对象的创建. 场景 大对象的创建. 优点 1.可以在运行时刻增加和删除产品 2.可以改变值或结构 ...

  9. CF779B(round 402 div.2 B) Weird Rounding

    题意: Polycarp is crazy about round numbers. He especially likes the numbers divisible by 10k. In the ...

  10. iOS 随笔小技巧 弱self 打印当前类行数列数,多人开发自动适配pch地址,获取设备uid的信息

    $(SRCROOT)/PrefixHeader.pch自动适配pch地址 __weak __block typeof(self) weakself = self; __weak typeof(self ...