Java是Android开发的主要语言,所以掌握Java语言基础非常重要,本阶段讲解了Java的基本语法,要深入掌握Java语言,可以通过Java学习路径图学习。 17课程 10小时 19分钟
-
-
1.Java编程基础知识入门:变量与数据类型
本课学习变量的命名、定义和初始化及整数、浮点、字符数据类型。
25课时,141分钟 626人学习
-
-
-
2.Java语言Switch语句详解
本课学习switch语句,switch语句是分支语句的一组,适用于判断同一变量的多种状态,进行流程控制。
5课时,17分钟 344人学习
-
-
-
3.Java判断与关系运算
本课学习关系运算的种类和在不同场合下的用法。
2课时,6分钟 451人学习
-
-
-
4.Java语言逻辑运算
本课学习逻辑运算的种类、原理、优先级,并“与、或、非”在实际应用中使用。
6课时,16分钟 541人学习
-
-
-
5.Java if判断语句的用法
本课学习If判断语句的用法和技巧。
5课时,17分钟 466人学习
-
-
-
6.Java循环结构语句的特点和使用方法
本课学习Java中While循环、For循环等语句的特点和使用方法,掌握流程控制。
7课时,19分钟 573人学习
-
-
-
7.Java常用技巧-Java配置环境变量与常用技巧
本课深入学习Java语言、JDK等核心知识点,掌握常用技巧,能够解决常见错误。
22课时,115分钟 1278人学习
-
-
-
8.Java类方法详解
本课程学习static关键字、定义无参和带参方法,让学员理解并学会使用Java类方法。
5课时,36分钟 652人学习
-
-
-
9.Java面向对象中类与对象的概念和使用
本课程学习Java面向对象中方法和类的创建,重载及两者之间的关系并全面了解Java面向对象思想。
4课时,37分钟 560人学习
-
-
-
10.Java面向对象的基本特征之一:封装性
本课学习使用Java匿名对象,降低内存消耗,了解java构造方法传递参数的使用,掌握java封装性的使用方式以及理解封装性优点。
3课时,23分钟 612人学习
-
-
-
11.Java面向对象中引用的传递
本课时学习Java引用传递的使用方法和注意事项。
3课时,35分钟 821人学习
-
-
-
12.Java面向对象基本特征:继承
本课讲解Java继承的实现过程和继承使用上的限制条件。
5课时,31分钟 189人学习
-
-
-
13.Java面向对象-抽象类与接口
本课讲解Java final关键字,Java抽象类和接口的使用及实现。
3课时,22分钟 247人学习
-
-
-
14.Java String字符串详解
Java字符串无处不在,掌握字符串的使用,节省内存空间,对程序很有必要。本课对Java字符串进行讲解。
4课时,31分钟 354人学习
-
-
-
15.Java面向对象多态性
本课讲解面向对象基本特征之Java多态性,掌握多态性的使用。
5课时,28分钟 256人学习
-
-
-
16.Java开发调试技巧及Eclipse快捷键使用方法
掌握在Java语言中调试的技巧及Eclipse中的快捷操作技巧。
2课时,24分钟 238人学习
-
-
-
17.Java异常处理
本课讲解异常的处理、异常的概念、出现异常之后如何快速处理掉。
5课时,21分钟 386人学习
-
2.环境搭建
环境搭建是Android开发最基础技能,必须完全掌握 1课程 25分钟
-
-
1.Android 集成开发环境搭建
本课讲解如何搭建Android集成开发环境,全程使用Google官方推荐的Android Studio集成开发环境展开工作,在课程中使用最新的Android 5模拟器进行演示,内容包括分别在Mac、Windows、Linux三大主流平台上搭建集成开发环境。
3课时,25分钟 2043人学习
-
3.Android基础知识
本阶段包含Android 理论知识,是 Android 应用开发的根基
要想以后有更长足的提高,这部分的知识需要耐心学习实践,在这里你将渐渐熟悉 Android 的方方面面~
12课程
4小时
39分钟
-
-
1.认识 Android 中的 Activity 组件
本课带领大家认识 Android 中的 Activity 组件,内容包括 Activity 是什么、绑定自定义的视图、启动一个 Activity,通过本课的学习将掌握 Activity 的基本概念及简单的使用。
4课时,18分钟
2159人学习
-
-
2.Activity 生命周期
本课深入讲解 Activity 的生命周期,内容包括如何查看帮助文档、Activity 生命周期详解、在 Activity 跳转过程中的生命周期详解,通过本课学习将掌握 Activity 生命周期相关的所有知识
3课时,21分钟
2083人学习
-
-
3.在 Activity 之间传递参数
本课讲解在 Activity 之间传递参数,内容包括传递简单数据、传递复杂数据、传递值对象、接受被启动的 Activity 的返回值,通过本课的学习将掌握关于 Activity 较复杂一些的操作。
5课时,34分钟
2102人学习
-
-
4.Android 中 Activity 启动模式
在 Android 中 Activity 有四种启动模式,分别为 Standard、SingleTop、SingleTask、SingleInstance,本课将详细讲解这四种启动模式的作用。
3课时,18分钟
2176人学习
-
-
5.在 Android 中 Intent 的概念及应用
本课将对 Intent 进行详细的讲解,内容包括隐式 Intent,显式 Intent,IntentFilter 的配置,从浏览器启动应用的实例,通过本课学会 Intent 的概念及用法。
4课时,32分钟
2204人学习
-
-
6.Android 中 Context 的理解及使用
本课将对 Context 进行详细的讲解,内容包括 Context 的作用、Application 的使用
3课时,25分钟
2103人学习
-
-
7.认识 Android Service
本课将对 Service 进行详细的讲解,内容包括启动 Service、停止 Service、绑定 Service、解除绑定 Service、Service 的生命周期讲解。
3课时,24分钟
2038人学习
-
-
8.Android 中 Service 通信
本课将对如何与 Service 通信进行详细的讲解,内容包括向 Service 传递数据、绑定 Service 并与之通信
4课时,26分钟
2019人学习
-
-
9.Android 中 AIDL 的理解与使用
本课将对 AIDL 进行详细的讲解,内容包括跨应用启动 Service、跨应用绑定 Service、跨应用与被绑定的 Service 通信
3课时,29分钟
2106人学习
-
-
10.Android 广播接收器 BroadcastReceiver
本课将对 BrocastReceiver 进行详细的讲解,内容包括在 Manifest 文件中配置BroadcastReceiver,动态注册和注销 BroadcastReceiver,BroadcastReceiver 的优先级
3课时,17分钟
2054人学习
-
-
11.Android 日志系统
本课讲解 Android 日志系统的使用,内容包括 System.out、System.err 的用法,Log.i、Log.d、Log.w、Log.e、Log.v 函数的用法,如何在 Android Studio 中对 Android 日志进行分类过滤,如何在 DDMS 中对 Android 日志进行分类过滤。
3课时,16分钟
2108人学习
-
-
12.Android 权限系统
本课介绍 Android 权限系统,内容包括申请权限、定义权限、在代码中做权限检查、为基本组件添加权限检查功能。
3课时,19分钟
2018人学习
4.用户界面优化
优化用户界面,可以让应用对用户更加友好,并增强用户体验 17课程 9小时 16分钟
-
-
1.Android Fragment
本课讲解在 Android 中Fragment的用法,内容包括使用Fragment、Fragment的生命周期、带侧栏的Activity、Tabbed Activity。
4课时,40分钟 2203人学习
-
-
-
2.Android 基本布局
本课讲解在 Android 中常用的几种基本布局的理解与使用细节,内容包括 LinearLayout (线性布局)、RelativeLayout (相对布局)、FrameLayout (帧布局)
5课时,30分钟 2208人学习
-
-
-
3.Android RecyclerView
本课讲解 Android RecyclerView 的用法,内容包括使用 RecyclerView、使用资源文件自定义列表项、RecyclerView 的布局样式,通过这些课程将深入掌握 Android RecyclerView 的所有用法
3课时,22分钟 2036人学习
-
-
-
4.Android 常用控件
本课讲解 Android 开发中几种常用的控件,内容包括下拉列表、日期选择器、时间选择器、单项选择、多项选择,通常学习使用这些常用的控件而掌握使用 Android 控件的能用方法
5课时,25分钟 2017人学习
-
-
-
5.Android用户界面优化-Android SlidingMenu菜单栏程序设计开发
本课学习SlidingMenu的制作方法和ADT中项目依赖关系配置。
5课时,21分钟 4386人学习
-
-
-
6.Android通用下拉刷新控件的使用
本课学习通用下拉刷新控件和控件的刷新方法。
3课时,16分钟 918人学习
-
-
-
7.Android用户界面优化-Android绘图API开发自定义视图控件
本课学习创建自定义的视图(View)和控件的方法,开发界面效果好的程序。
4课时,28分钟 1075人学习
-
-
-
8.Android用户界面优化-Android自定义视图动画
本课学习使用Android视图动画、自定义动画效果,提高程序的用户友好程度和体验。
8课时,55分钟 872人学习
-
-
-
9.Android用户界面优化-Android创建和配置布局动画
本课学习用代码/资源文件配置布局动画,提高程序的用户友好程度。
6课时,27分钟 688人学习
-
-
-
10.Android知识点-点9切图法在Android UI设计中的运用
本课学习Android UI开发中Drawable相关技术,熟练使用九宫格切图法创作图片素材。
3课时,24分钟 1543人学习
-
-
-
11.Android ViewPager引导页-Android专题
本课讲解ViewPager的实现和引导页细节的实现。
4课时,34分钟 529人学习
-
-
-
12.Android 侧滑菜单之 DrawerLayout 的使用
本课讲解如何使用 Google 官方提供的 DrawerLayout 控件,同时结合 Fragment 的动态创建与 ActionBar 来实现侧滑菜单功能的开发。
5课时,39分钟 2192人学习
-
-
-
13.Android 中 Action Bar 的使用
Action Bar 是一个标识应用程序和用户位置的窗口控件,并且给用户提供统一的操作和导航模式。在大多数的情况下,当需要突出展现用户行为或全局导航的时候使用 Action Bar,因为其能够使应用程序给用户提供一致的界面,并且系统能够很好的根据不同的屏幕配置来适应操作栏的外观。
7课时,74分钟 2103人学习
-
-
-
14.Android Surface View绘图API详解
本课学习SurfaceView绘图API的使用方法,为接下来使用SurfaceView开发游戏做准备。
5课时,34分钟 1224人学习
-
-
-
15.Android中的消息通知Toast和Notification
本课程学习Toast和Notification的使用方法。
2课时,28分钟 268人学习
-
-
-
16.Android项目开发实战:自定义左右菜单
通过对 View 的理解,完成左右菜单的的布局分配,并且添加滑动效果,自动滑动的事件,完成事件的分发机制,添加蒙版完成更好的用户体验。
5课时,43分钟 2568人学习
-
-
-
17.Android项目开发实战:2D翻转
本课通过Tween Animation动画完成2D翻转卡片实例效果,使用ScaleAnimation的缩放效果添加到ImageView控件之上,以缩放的效果完成翻转视觉效果,并添加动画监听事件。
2课时,16分钟 2197人学习
-
5.系统功能
Android 移动平台具有很特色功能,这些功能在实际开发中都是很常用的。 5课程 25小时 11分钟
-
-
1.Android多点触摸交互处理
本课学习触摸事件的侦听、传递和多点触摸的使用方法。
5课时,28分钟 2680人学习
-
-
-
2.Android基础知识-传感器、无线传输与媒体硬件功能开发
学习目标:掌握11种Android硬件功能开发攻略全掌握。
28课时,715分钟 1326人学习
-
-
-
3.Android六种核心安全机制-加密、密钥、签名与证书
学习目标:通过对现代网络安全的基础理论的学习,掌握和理解其核心原理。
8课时,166分钟 1458人学习
-
-
-
4.Android操作系统安全机制-进程、用户与文件安全
学习目标:掌握和理解移动平台的安全策略和方案。
8课时,189分钟 1562人学习
-
-
-
5.签名、权限、组件安全、文件与用户安全
学习目标:通过对Android移动平台上的安全机制的学习,掌握和理解其核心原理。
15课时,413分钟 1328人学习
-
6.数据存储
随着互联网的发展,应用程序逐渐的处理更多的数据,所以掌握数据存储与处理十分重要 6课程 4小时 1分钟
-
-
1.Android文件读写操作
本课讲解文件的基本操作及读取Assets与raw文件夹中的数据。
5课时,79分钟 461人学习
-
-
-
2.Android读写首选项
本课讲解 SharedPreference 的概念与使用及 PreferenceActivity 的操作。
3课时,43分钟 411人学习
-
-
-
3.使用SQLite数据库存储数据
本课讲解使用代码读写SQLite数据库和通过界面操作数据库。
2课时,52分钟 389人学习
-
-
-
4.应用间数据传递
本课讲解认识ContentProvider,使用SQLite存储简单的数据和应用间通过ContentProvider通信数据。
1课时,20分钟 348人学习
-
-
-
5.在Android中操作XML数据
本课讲解在Android中读取XML中的使用。
3课时,28分钟 381人学习
-
-
-
6.在Android中操作JSON数据
本课学习如何在Android中使用JSON数据。
3课时,19分钟 432人学习
-
7.网络通信
掌握使用异步任务进行网络通信,让应用在网络世界更加灵活自如 6课程 4小时 27分钟
-
-
1.Android异步任务处理
教你使用多线程。
2课时,27分钟 581人学习
-
-
-
2.Android中基于HTTP的通信技术
本课程讲解使用HttpClient进行Get或Post通信。
4课时,43分钟 369人学习
-
-
-
3.Android中基于Socket的网络通信
本课程讲解客户端使用Socket与服务器通信。
5课时,49分钟 621人学习
-
-
-
4.Android 常用 OAuth 登录与分享详解:百度登录
本课主要是通过讲解如何使用百度 SDK 来完成百度的 OAuth 认证并且获取到用户在百度的个人信息。最后我们还会一起来分析下百度的 SDK 的源码,以加深对 OAuth 在 Android 端具体如何实现的逻辑。
4课时,75分钟 2093人学习
-
-
-
5.Google开源库-Volley的应用
通过使用 Volley 完成异步请求任务,主要完成 JSON 字符串请求,异步图片加载,Volley 提供的 NetworkImageView 的使用。
4课时,27分钟 2193人学习
-
-
-
6.Android 扫描二维码实现网页登录
本课讲解如何使用 ZXing 库扫描二维码,使用 PHP 生成指定二维码,以及综合 Android、PHP、MySQL 实现扫描二维码登录的功能。
6课时,46分钟 2157人学习
-
8.混合编程
使用C/C++与Java混合编程,可以让你的应用更加安全、高效 2课程 3小时 47分钟
-
-
1.Android NDK开发-Java与C语言混合编程
掌握Android NDK调用方法和调试方法可以自动将so和Java应用一起打包,减轻开发人员的打包工作,本节课学习Android NDK调用、调试方法。
7课时,186分钟 1206人学习
-
-
-
2.Android NDK集成开发环境搭建
本课学习NDK开发环境搭建、自动创建头文件、编译源文件和多CPU架构适配。
6课时,41分钟 1121人学习
-
9.Android 测试
测试是非常重要的开发技能。 10课程 7小时 23分钟
-
-
1.Andriod 自动化测试及其框架简介
本课主要分析了Android UI 自动化测试的前景,介绍了当前UI自动化测试使用的框架,并做了一个实例,演示 UiAtuotomator 测试框架的使用。
3课时,20分钟 2103人学习
-
-
-
2.Android UiAutomator 环境配置与编译运行
本课介绍 Android UiAutomator 使用工具的下载安装和环境配置,如何新建 UiAutomator 测试工程,如何编译和运行测试代码,以及如何运行命令和快速编译调试。
4课时,39分钟 2014人学习
-
-
-
3.Android UiAutomator UiDevice API 详细介绍
本课学习UiAutomator UiDevice,详细说明和实例讲解所有的API,学完本课后具备初步的Android自动化技术,能使用坐标来编写简单的操作步骤。
9课时,64分钟 2062人学习
-
-
-
4.Android UiAutomator UiSelector API 详细介绍
本课学习 UiAutomator UiSelector, UI元素的搜索向来是UI自动化测试的重中之重,搜索定位到界面的UI组件元素,然后操作控制它。本课学习各种搜索组件的方法,理解并掌握每种搜索方式,为后续能够得心应手地编写测试脚本奠定扎实的基础。
8课时,62分钟 2109人学习
-
-
-
5.Android UiAutomator UiObject API 详细介绍
本课介绍 UiAutomator 中 UiObject 类中 API 的使用,包括以下基本模拟操作:点击长按、滑动拖动、文本输入、手势操作,以及获取子类父类等操作。
7课时,63分钟 2019人学习
-
-
-
6.Android UiAutomator UiCollection API 详细介绍
本课学习 UiAutomator 中 UiCollection 类中 API 的使用,主要介绍通过多个条件获取对象。
3课时,27分钟 0人学习
-
-
-
7.Android UiAutomator UiScrollable API 详细介绍
本课程主要介绍 UiAutomator 中 UiScrollable 类中 API 的使用,主要为界面滚动的操作,包括快速滚动,向前向后滚动,滚动到指定对象,横向滚动纵向滚动
8课时,60分钟 2039人学习
-
-
-
8.Android UiAutomator UiWatcher API 详细介绍
本课程介绍 UiAutomator 中 UiWatcher 类中 API 的使用与监听器的设置,主要用于处理测试过程中出现非预想的步骤,如运行过程中突然来了短信,闹钟,打断了测试的意外情况。
3课时,25分钟 2076人学习
-
-
-
9.Android UiAutomator Configurator API 详细介绍
本课程介绍如何查看运行测试代码后的报告,并对 Configurator 的 API 进行了讲解,以及阐述了 Configurator 主要配置 UiAutomator 中的默认延时。
3课时,38分钟 2084人学习
-
-
-
10.Android UiAutomator 报告查看
本课首先介绍如何查看 Android UiAutomator 产生的报告,对报告的每条信息进行详细说明,接着介绍如何输出自己想要的信息到报告中和如何总报告中定位问题,最后再介绍如何通过运行命令传入数据到脚本用例中。
4课时,45分钟 2135人学习
-
android实战路径图
为了你能更好的学习,我们精心准备了“实战路径图”。跟随着实战路径图,你可以在真实案例中学习到实际开发中需要用到的核心知识,并且充满乐趣。在Android实战路径图中,我们为你准备了由易到难的系列课程,带你逐步掌握Android开发中的“UI控件”、“动画效果”、“数据储存”、“网络交互”、“第三方开源库”的应用。你还可以在“知识体系图”中进行基础课程的学习和训练,掌握基本知识点。
header .over:before,.path-matrix>header .underway:before{background-image:url(http://s1.jikexueyuan.com/path/images/path-elem_9dfc40b.png);background-size:53px 61px}#container>.wrap:after{display:table;clear:both;content:" "}.icon{position:relative;top:-1px;display:inline-block;vertical-align:middle}.i-favorite{width:17px;height:17px;background-position:0 -14px}.i-favorite.ysc,.i-favorite:hover{cursor:pointer;background-position:-17px -14px}.i-favorite.ysc:hover{background-position:-34px -14px}.i-lessonState{position:relative;z-index:10;width:20px;height:20px;display:block;background-color:#35b558;background-image:none;background-repeat:no-repeat}.i-lessonState.null{background-color:#e4e4e4}.i-lessonState.advance{background-color:#11772d}.i-lessonState.advanced{background-color:#053e15}.i-lessonState.over{background-position:0 -31px}.i-lessonState.underway{background-position:-20px -31px}.path-describe{margin:0 0 28px;padding:14px;border:1px solid #e4e4e4}.path-describe>header{padding:0 0 12px;border-bottom:1px solid #e4e4e4}.path-describe>header:after{display:table;clear:both;content:" "}.path-describe>header h2{float:left;color:#666;font-size:20px;line-height:34px}.path-describe>header h2 img{position:relative;top:-2px;height:25px;margin:0 10px 0 0}.path-describe>header .mod-tips{float:left;margin:10px 0 0 20px}.path-describe>header h3{color:#35b558;font-size:18px;line-height:20px}.path-describe>.bd:after{display:table;clear:both;content:" "}.practice-text{margin:0;background:#f8f8f8}.practice-text .bd p{float:left;width:780px;padding:12px 0 0;color:#666;font-size:12px;line-height:24px}.practice-text .bd .btn{float:right;display:inline-block;width:144px;height:40px;margin:29px 7px 0 0;background:#35b558;color:#fff;font-size:18px;line-height:40px;text-align:center;-webkit-transition:background-color .8s;-moz-transition:background-color .8s;transition:background-color .8s}.practice-text .bd .btn:hover{background:#66d178}.path-matrix>header{padding:16px 0;line-height:40px}.path-matrix>header:after{display:table;clear:both;content:" "}.path-matrix>header h3{float:left;color:#35b558}.path-matrix>header aside{float:right;color:#666;text-align:right;font-size:12px}.path-matrix>header aside span{margin-left:20px}.path-matrix>header aside span:before{position:relative;top:-1px;display:inline-block;width:10px;height:10px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;margin-right:5px;background:#35b558;content:" ";vertical-align:middle}.path-matrix>header .advance:before{background:#11772d}.path-matrix>header .advanced:before{background:#053e15}.path-matrix>header .null:before{background:#e4e4e4}.path-matrix>header .over:before,.path-matrix>header .underway:before{background-color:transparent;background-repeat:no-repeat;background-position:0 -51px}.path-matrix>header .underway:before{background-position:-10px -51px}#pathMatrix>header section{display:none;clear:both}#pathMatrix>header section p{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;width:100%;max-height:66px;color:#666;font-size:12px;line-height:22px}#pathMatrix>header .mod-tips{display:inline-block;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#pathMatrix>header .mod-tips .icon{margin-right:6px;cursor:pointer}#pathMatrix>header .tips-help .icon{width:14px;height:14px;background:#999;background-image:none;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;color:#fff;font:12px/14px arial}.mod-matrix ul{margin:0 -5px -5px 0}.mod-matrix ul:after{display:table;clear:both;content:" "}.mod-matrix li{overflow:visible;float:left;width:20px;height:20px;margin:0 5px 5px 0}.mod-matrix .i-lessonState{overflow:hidden}.mod-matrix .i-lessonState .mod-lesson{opacity:0;position:absolute;bottom:100%;left:-145px;width:310px}.mod-matrix .i-lessonState .mod-lesson .joint{display:block;content:" ";height:14px;width:32px;position:absolute;top:100%;left:50%;margin:0 0 0 -16px}.mod-matrix .i-lessonState .mod-lesson h3{text-indent:0;padding:0}.mod-matrix li.hover .i-lessonState{overflow:visible;z-index:1200}.mod-matrix li.hover .i-lessonState .mod-lesson{visibility:visible;opacity:1}.mod-matrix .i-lessonState .mod-lesson,.mod-matrix .i-lessonState .mod-lesson:hover{visibility:visible;overflow:visible;height:175px;padding:12px 14px;margin:0 0 9px;border:1px solid #e4e4e4;background:#fff}.mod-matrix .i-lessonState .mod-lesson .other,.mod-matrix .i-lessonState .mod-lesson p,.mod-matrix .i-lessonState .mod-lesson:hover .other,.mod-matrix .i-lessonState .mod-lesson:hover p{opacity:1;visibility:visible}.mod-matrix .i-lessonState .mod-lesson h3,.mod-matrix .i-lessonState .mod-lesson:hover h3{height:40px;white-space:normal}#path{margin:0 0 22px}.path-item{margin:0 0 28px;position:relative}.path-item h2{margin:0 0 5px;color:#666;font-size:18px;line-height:22px}.path-item>header{padding:0 0 15px}.path-item>header .describe{color:#999;font-size:12px;line-height:16px}.path-item>header .lessonTime{float:right;color:#666}.path-item>header .lessonTime em{color:#f90;margin-right:6px}.lessons{border:1px solid #e4e4e4;padding:14px 14px 0}.lessons:after{display:table;clear:both;content:" "}.lessons .l-item{float:left;width:316px;height:20px;margin:0 11px 20px 0}.mod-lesson{position:relative;z-index:20;overflow:hidden;height:20px;-webkit-transition:height .3s;-moz-transition:height .3s;-ms-transition:height .3s;transition:height .3s}.mod-lesson>dl:after{display:table;clear:both;content:" "}.mod-lesson>dl>dt{float:left;width:20px}.mod-lesson>dl>dd{margin-left:28px}.mod-lesson h3{overflow:hidden;text-overflow:ellipsis;height:20px;margin:0 0 12px;padding:0 0 0 1.1em;color:#333;font-size:14px;line-height:20px;text-indent:-1.1em;white-space:nowrap;cursor:default}.mod-lesson h3 a{color:#333}.mod-lesson h3 a:hover{color:#35b558}.mod-lesson .other,.mod-lesson p{-webkit-transition:opacity .3s .1s;-moz-transition:opacity .3s .1s;-ms-transition:opacity .3s .1s;transition:opacity .3s .1s}.mod-lesson p{visibility:hidden;opacity:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;width:100%;height:60px;margin:0 0 20px;color:#666;font-size:12px;line-height:20px;word-break:break-all}.mod-lesson .other{visibility:hidden;opacity:0;padding:0 0 4px;color:#999;font-size:12px;line-height:14px}.mod-lesson .other>span{display:inline-block;margin:0 14px 0 0;white-space:nowrap}.mod-lesson .other>.learnNum,.mod-lesson .other>.lessonTime{width:120px}.mod-lesson .other>.learnNum{margin-right:0}.mod-lesson .other .i-favorite{float:right;margin:0 4px 0 0}.mod-lesson .learnNum:before,.mod-lesson .lessonTime:before{position:relative;top:-1px;display:inline-block;width:14px;height:14px;margin-right:5px;background-position:0 0;content:" ";vertical-align:middle}.mod-lesson .learnNum:before{background-position:-14px 0}.mod-lesson>.arrow{position:absolute;top:100%;left:50%;margin:0 0 0 -8px}.mod-lesson>.arrow:after,.mod-lesson>.arrow:before{display:block;width:0!important;height:0!important;padding:0!important;font-size:0!important;line-height:0!important;border:8px solid transparent;border-bottom-width:0;border-top-color:#e4e4e4;content:" "}.mod-lesson>.arrow:after{position:absolute;bottom:1px;left:1px;border-width:7px;border-bottom-width:0;border-top-color:#fff}.mod-lesson:hover{z-index:100;overflow:visible;height:175px;margin:-11px -8px -11px -11px;padding:10px 7px 10px 10px;background:#f8f8f8;border:1px solid #e4e4e4}.mod-lesson:hover h3{height:40px;white-space:normal}.mod-lesson:hover .other,.mod-lesson:hover p{opacity:1;visibility:visible}.lessons .l-item:nth-child(3n+3){margin-right:0}
-->