- swift基础语法
超Pro
iOS开发swift开发语言ios
swift学习笔记参考教程https://www.runoob.com/swift/swift-data-types.htmlswift代码规范https://juejin.cn/post/71294653083764654221环境搭建必须要有苹果电脑且安装Xcode2基本语法Swift是类型安全的语言,编译时会进行类型检查importCocoavarmySting="Hello,World!"
- Swift学习笔记
GQJY
defer修饰函数内任意一段代码,调用时机;在函数中其余代码都执行完毕,函数即将结束前,可以用它在异常中进行扫尾工作,比如关闭IO流释放资源等extension通过增加的实例方法可以修改实例本身,如果结构体和枚举的方法要修改self或其属性,则需要使用mutating关键字标明扩展可以向已存在的类结构体和枚举添加新的嵌套类型在结构体、枚举、或者协议中使用mutating修饰方法可以在该方法内部修改
- Swift学习笔记 ——(一)
xhsdnn
iosiosswiftgrammarapple
前言作为一个前端开发者,经常与javaacript(以下简称:js)打交道。最近想了解一下ios开发,前两天看了一下objective-c(以下简称:oc),相对于js来说还是有很多不同的,但是语言还是很多相通的地方,加上之前了解一些java,理解起来不是很困难。在网上看了很多对oc和swift的评价,褒贬不一,心里想着,如果是ios开发的话,这两种肯定都要学,所以这两天对swift进行了了解。对
- Swift学习笔记六:常见概念(一)
英雄有梦
Swift专栏:大家和我从头学swift概念date
七、常见概念1.范围Range、ClosedRange和NSRange的使用//区间分为闭区间和半开区间importFoundationletclosedRange:ClosedRange=1...3//闭区间letintArray=["1","2","3","4","5"]intArray[closedRange]//使用闭区间,获得数组中的从第2个位置开始,至第4个位置的所有元素,并返回由这三
- Swift学习笔记二:数据类型
英雄有梦
Swift专栏:大家和我从头学swift数据类型
6.Swift中的元组(Tuples)//元组:包含不同的数据类型,并组成一个复合值,使用逗号隔开,并使用括号括起来的0个或多个类型组成的列表。lethttp500Error=(500,"Internalsevererror")let(statusCode,statusMessage)=http500Error//可以将元组赋值给一个带有元素名称的元组,元素名称的个数要和元组一一对应statusC
- Swift学习笔记(5):集合类型
weixin_30376163
swift
目录:数组:Array集合:Set字典:DictionarySwift提供Array(有序集合数据)、Set(无序无重复集合)和Dictionary(无序键值对集合)三种基本集合类型来存储明确数据类型的集合数据。使用var将集合声明为变量,可以在创建之后添加、移除、修改集合内数据项。如果使用let将集合声明为常量,则它的大小和内容就都不可改变。数组:Array初始化和赋值:varsomeInts=
- Swift学习笔记(1):基础部分
吃素的小动物
swift操作系统
目录:分号常量和变量数据类型数值型类型转换类型别名元组可选类型API版本检查分号Swift并不强制要求你在每条语句的结尾处使用分号(;),你也可以按照自己的习惯添加分号。如果在一行内写多条独立的语句情况下必须要用分号。常量和变量使用let定义常量,使用var定义变量,常量和变量必须在使用前声明,且可以使用Unicode字符声明:不能包含数学符号,箭头,保留的(或者非法的)Unicode码位,连线与
- Swift学习笔记(6):控制流
weixin_30892987
swift
目录:For-InWhileIf-Else,Guard-ElseSwitch控制转移For-In可以使用for-in语句循环遍历集合、区间、元组、字符串。//遍历区间,返回元素值forindexin1...5{print("(index)times5is(index*5)")}//循环区间,忽略元素值for_in1...power{answer*=base}//遍历数组letnames=["Ann
- swift学习笔记之---数组、字典、枚举、结构体
weixin_34356310
swift
1、数组-Arraylettypes=["none","warning","error"]//省略类型的数组声明letmenbers=[String]()//声明一个空数组menbers.append("six")//添加元素menbers+=["seven"]//添加元素menbers.insert("one",atIndex:0)//指定位置添加元素menbers[0]="message"//
- Swift学习笔记之基本数据类型-数组与字典
安静的偏执
iOS开发swift
1.代码示例//:Playground-noun:aplacewherepeoplecanplayimportCocoa//声明数组varmyList=["hello",3]//打印数组中的值foriteminmyList{print(item)}print("\n")//打印数组中指定的值print("数组中第二个值为\(myList[1])\n")//打印数组的大小print("数组长度为\(
- swift学习笔记——集合类型(数组)
dxldy0614
swiftswift数组
数组数组的声明:ArraySomeType[]varshoppingList:String[]=["Eggs","Milk"]varshoppingList1:Array=["fff","sss","aaa"]//shoppingList已经被构造并且拥有两个初始项。因为swift可以自己推断类型上面的句子也可以写成varshoppingList=["Eggs","Milk"]获取数组元素个数pr
- Swift学习笔记第二节:数组类型
SmallTeddy
Swiftswift学习笔记
1、代码importFoundationletarr1=[1,2,3,4,5,6]letarr2=["a","b","c","d","e","f"]letarr3=[true,false,true]letarr4:Array=[1,2,3]letarr5:[Int]=[1,2,3]letarr6=Array([1,2,3])letarr7=Array(1...3)letarr8=Array(rep
- Swift学习笔记第三节:Set类型
SmallTeddy
Swiftswift学习笔记
1、代码importFoundationvarset1:Set=[1,2,3,4,3]print("定义1:\(set1)")varset2=Set(1...4)print("定义2:\(set2)")print("长度:\(set2.count)")print("是否为空:\(set2.isEmpty)")set1.insert(99)set1.update(with:33)print("插入:
- 《Swift学习笔记》09 - 函数的简单介绍
ShIwEn9
介绍:Swift语言由苹果公司在2014年推出,用来撰写MacOS和iOS应用程序,并且Swift还是开源的,开源地址:https://github.com/apple/swift,同时附上官方博客地址:https://swift.org目前Swift已经发展到了第五版本。显然苹果大有推翻OC“江山”的意思.今天就来初探一下Swift,看看究竟为何swift有这么大的能力。参考内容:Swift中文
- Swift学习笔记-继承
女粉丝
1.方法的重写需要在重写的方法前加override。overridefuncmakeNoise(){print("这是子类")}在属性someProperty的getter或setter的重写实现中,可以通过super.someProperty来访问超类版本的someProperty属性。在下标的重写实现中,可以通过super[someIndex]来访问超类版本中的相同下标。2.重写属性///相当
- swift学习笔记(二)类和结构体、内存管理
d14888bcdd2b
六、类与结构体结构体swift中结构体和类十分相似,即可定义属性,又可以定义方法,但不具有继承的特性。使用struct定义结构体,结构体中声明变量或者常量作为结构体属性,可以创建函数作为结构体的方法,用点语法调用属性和方法。structCar{//价格varprice:NSInteger//品牌varbrand:String//油量varpetrol:NSInteger//提供一个驾驶方法muta
- Swift学习笔记 - Swift属性只读
W_C__L
swift学习笔记swift
在OC中我们经常用到只读属性,用readonly修饰一下就行了,但在Swift中已经不是这样修饰的了,下面记录一下Swift中只读属性的使用在OC中的只读://只读属性@property(readonly,nonatomic)NSObject*wcl;在Swift中的只读://只读属性private(set)varwcl
- IOS-swift学习笔记(持续更新)
Tmylyh
iosiosswift学习开发语言
目录基础知识获取字符串长度swichcase语句数组的创建编辑数组的编辑编辑数组的排序编辑数组的遍历编辑字典的增删改查编辑函数设置可变的函数参数数量函数的嵌套常用的内置函数枚举类类的初始化类的set和get类的静态方法类的析构函数编辑闭包计算属性存储属性的属性观察者类型属性访问权限编辑值类型和引用类型基础知识四种输出方式:整数类型和实例属性,Swift提供的有符号和无符号类型有8、16、32、64
- ChiOS-我的Swift学习笔记
饭小粒
swiftiosiOSswift
1.怎样自定义初始化方法?convenienceinit(byname:ee){self.init(name:ee,bundle:nil)}2.怎样写一个单例?finalclassUserInfoManager{privateinit(){}staticletshared=UserInfoManager()}3.使用Realm的object,属性一定要是dynamic的,否则查询成功以后model
- Swift学习笔记四(function 篇)
符哥2008
swift学习笔记
目录1Function概念及定义。1.1Function概念1.2Function定义1.3Function参数1.3.1无形式参数1.3.2多形式参数的函数1.4返回值1.4.1无返回值类型1.4.2多返回值类型1.4.3可选元组返回类型1.4.4隐式返回的类型1.4.5实参标签和形参名1.4.6指定实际参数标签1.4.7省略实际参数标签1.4.8默认形式参数值1.4.9可变形式参数1.4.10
- Swift学习笔记三(Dictionary 篇)
符哥2008
学习swiftios
1Dictionary概念字典储存无序的互相关联的同一类型的键和同一类型的值的集合。字典类型的全写方式Dictionary,简写方式[Key:Value],建议使用简写方式。字典的key必须是可哈希的。2Dictionary创建2.1初始器创建方式2.2简写创建方式2.3字面量创建方式2.4Dictionary的方法可以使用count只读属性来找出Dictionary拥有多少元素。使用布尔量isE
- Swift学习笔记之数组
Qu_qipa
ios开发swiftswift学习笔记swift数据语言存储class
集合类型Swift语言提供Arrays、Sets和Dictionaries三种基本的集合类型用来存储集合数据。数组是有序数据的集。集合是无序无重复数据的集。字典是无序的键值对的集。Swift语言中的Arrays、Sets和Dictionaries中存储的数据值类型必须明确。这意味着我们不能把不正确的数据类型插入其中。同时这也说明我们完全可以对取回值的类型非常自信注意:Swift的Arrays、Se
- Swift学习笔记一(数组篇)
符哥2008
swift学习笔记
目录0绪论1数组的创建和初始化2.数组遍历2.1通过键值对遍历2.2通过forEach遍历2.3通过forin遍历2.3.1forin搭配enumerated2.3.2forin的另一种形式2.3.2forin搭配indices2.4通过Iterator遍历器遍历3数组的操作3.1contains判断数组包含元素3.2allSatisfy(_:)判断数组的每一个元素都符合给定的条件4.查找比较4.
- Swift学习笔记之数组(三)
Qu_qipa
swift学习笔记书摘nsarrayswiftnsarray
数组重复值的初始化除了普通的初始化方法,我们可以通过init(count:Int,repeatedValue:T)来初始化一个数组填充上重复的值:varthreeDoubles=[Double](count:3,repeatedValue:0.0)带索引值的遍历我们可以用forin遍历数组,如果想要index的话,可以用enumerate(base:Seq):letarr=["a","b"]for
- Swift学习笔记1-oc与swift的区别
梵虚
编程范式Swift可以面向协议编程、函数式编程、面向对象编程OC以面向对象编程为主,当然你可以引入类似ReactiveCoca的类库来进行函数式编程类型安全swfit是一门类型安全的语言,鼓励程序猿在代码中清楚明确值的类型。如果代码中使用一个字符串string,那么你不能错误地传递一个整型Int给它。因为swift是类型安全的,它会在编译的时候做检查,并且把所有不匹配的类型作为一个错误标记出来。这
- swift学习笔记(一)基本数据类型、字符串、集合、运算符、函数、block
d14888bcdd2b
即将入职新公司,换工作的间歇期有时间看一看知识点,新项目里swift和oc混编,所以趁着机会看了下swift语法,由于UIKitoc和swift一样,所以只进行swift语法的学习,翻了一遍《swift4从零到精通iOS开发》,第一遍阅读用笔标出了语法不同点,然后边写代码实验边做笔记的形式记录。一、基本数据类型1.元组//元组允许一些不相关的类型进行自由组合,成为新的集合类型,适用于简单数据结构,
- Swift学习笔记-析构过程
女粉丝
析构器只适用于类类型,当一个类的实例被释放前,析构器会被立即调用(类似delloc?)。析构器用关键字deinit。析构过程原理在类的定义中,每个类最多只能有一个析构器,而且析构器不带任何参数。析构过程类似于delloc。classBank{staticvarcoinsInBank=10_000staticfuncdistribute(coinsnumberOfCoinsRequest:Int)-
- Swift学习笔记(九)-内存安全性
宇仔TuT
iOSSwiftiosswift
默认情况下,Swift会阻止代码中发生的不安全行为。比如说,Swift会保证在使用前就初始化,内存在变量释放后这块内存就不能再访问了,以及数组会检查越界错误。Swift还通过要求标记内存位置来确保代码对内存有独占访问权,以确保了同一内存多访问时不会冲突。由于Swift自动管理内存,大部份情况下你根本不需要考虑访问内存的事情。如果你的代码存在内存访问冲突,你就会得到编译时或运行时错误。理解内存访问冲
- RxSwift学习笔记
海森堡_lichangan
SwiftiOSswiftrxswiftios
RxSwift学习笔记Observable实际应用`Observable`Event创建Observable序列just方法of方法from方法create()方法error()方法empty()方法never()方法range()方法repeatElement()方法generate()方法deferred()方法interval()方法timer()方法创建一个事件序列对事件序列进行处理订阅事
- iOS-swift学习笔记-2
梦醉荼靡
importUIKitimportSVProgressHUDclassbourseViewController:UIViewController,UITableViewDataSource,UITableViewDelegate,StarsSortTableViewDelegate,StarsScreenViewDelegate{varcells=["默认排序","按价格排序","按代数排序","
- 如何用ruby来写hadoop的mapreduce并生成jar包
wudixiaotie
mapreduce
ruby来写hadoop的mapreduce,我用的方法是rubydoop。怎么配置环境呢:
1.安装rvm:
不说了 网上有
2.安装ruby:
由于我以前是做ruby的,所以习惯性的先安装了ruby,起码调试起来比jruby快多了。
3.安装jruby:
rvm install jruby然后等待安
- java编程思想 -- 访问控制权限
百合不是茶
java访问控制权限单例模式
访问权限是java中一个比较中要的知识点,它规定者什么方法可以访问,什么不可以访问
一:包访问权限;
自定义包:
package com.wj.control;
//包
public class Demo {
//定义一个无参的方法
public void DemoPackage(){
System.out.println("调用
- [生物与医学]请审慎食用小龙虾
comsci
生物
现在的餐馆里面出售的小龙虾,有一些是在野外捕捉的,这些小龙虾身体里面可能带有某些病毒和细菌,人食用以后可能会导致一些疾病,严重的甚至会死亡.....
所以,参加聚餐的时候,最好不要点小龙虾...就吃养殖的猪肉,牛肉,羊肉和鱼,等动物蛋白质
- org.apache.jasper.JasperException: Unable to compile class for JSP:
商人shang
maven2.2jdk1.8
环境: jdk1.8 maven tomcat7-maven-plugin 2.0
原因: tomcat7-maven-plugin 2.0 不知吃 jdk 1.8,换成 tomcat7-maven-plugin 2.2就行,即
<plugin>
- 你的垃圾你处理掉了吗?GC
oloz
GC
前序:本人菜鸟,此文研究学习来自网络,各位牛牛多指教
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别
- shiro 和 SESSSION
杨白白
shiro
shiro 在web项目里默认使用的是web容器提供的session,也就是说shiro使用的session是web容器产生的,并不是自己产生的,在用于非web环境时可用其他来源代替。在web工程启动的时候它就和容器绑定在了一起,这是通过web.xml里面的shiroFilter实现的。通过session.getSession()方法会在浏览器cokkice产生JESSIONID,当关闭浏览器,此
- 移动互联网终端 淘宝客如何实现盈利
小桔子
移動客戶端淘客淘寶App
2012年淘宝联盟平台为站长和淘宝客带来的分成收入突破30亿元,同比增长100%。而来自移动端的分成达1亿元,其中美丽说、蘑菇街、果库、口袋购物等App运营商分成近5000万元。 可以看出,虽然目前阶段PC端对于淘客而言仍旧是盈利的大头,但移动端已经呈现出爆发之势。而且这个势头将随着智能终端(手机,平板)的加速普及而更加迅猛
- wordpress小工具制作
aichenglong
wordpress小工具
wordpress 使用侧边栏的小工具,很方便调整页面结构
小工具的制作过程
1 在自己的主题文件中新建一个文件夹(如widget),在文件夹中创建一个php(AWP_posts-category.php)
小工具是一个类,想侧边栏一样,还得使用代码注册,他才可以再后台使用,基本的代码一层不变
<?php
class AWP_Post_Category extends WP_Wi
- JS微信分享
AILIKES
js
// 所有功能必须包含在 WeixinApi.ready 中进行
WeixinApi.ready(function(Api) {
// 微信分享的数据
var wxData = {
&nb
- 封装探讨
百合不是茶
JAVA面向对象 封装
//封装 属性 方法 将某些东西包装在一起,通过创建对象或使用静态的方法来调用,称为封装;封装其实就是有选择性地公开或隐藏某些信息,它解决了数据的安全性问题,增加代码的可读性和可维护性
在 Aname类中申明三个属性,将其封装在一个类中:通过对象来调用
例如 1:
//属性 将其设为私有
姓名 name 可以公开
- jquery radio/checkbox change事件不能触发的问题
bijian1013
JavaScriptjquery
我想让radio来控制当前我选择的是机动车还是特种车,如下所示:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"><
- AngularJS中安全性措施
bijian1013
JavaScriptAngularJS安全性XSRFJSON漏洞
在使用web应用中,安全性是应该首要考虑的一个问题。AngularJS提供了一些辅助机制,用来防护来自两个常见攻击方向的网络攻击。
一.JSON漏洞
当使用一个GET请求获取JSON数组信息的时候(尤其是当这一信息非常敏感,
- [Maven学习笔记九]Maven发布web项目
bit1129
maven
基于Maven的web项目的标准项目结构
user-project
user-core
user-service
user-web
src
- 【Hive七】Hive用户自定义聚合函数(UDAF)
bit1129
hive
用户自定义聚合函数,用户提供的多个入参通过聚合计算(求和、求最大值、求最小值)得到一个聚合计算结果的函数。
问题:UDF也可以提供输入多个参数然后输出一个结果的运算,比如加法运算add(3,5),add这个UDF需要实现UDF的evaluate方法,那么UDF和UDAF的实质分别究竟是什么?
Double evaluate(Double a, Double b)
- 通过 nginx-lua 给 Nginx 增加 OAuth 支持
ronin47
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGeek 在过去几年中取得了发展,我们已经积累了不少针对各种任务的不同管理接口。我们通常为新的展示需求创建新模块,比如我们自己的博客、图表等。我们还定期开发内部工具来处理诸如部署、可视化操作及事件处理等事务。在处理这些事务中,我们使用了几个不同的接口来认证:
&n
- 利用tomcat-redis-session-manager做session同步时自定义类对象属性保存不上的解决方法
bsr1983
session
在利用tomcat-redis-session-manager做session同步时,遇到了在session保存一个自定义对象时,修改该对象中的某个属性,session未进行序列化,属性没有被存储到redis中。 在 tomcat-redis-session-manager的github上有如下说明: Session Change Tracking
As noted in the &qu
- 《代码大全》表驱动法-Table Driven Approach-1
bylijinnan
java算法
关于Table Driven Approach的一篇非常好的文章:
http://www.codeproject.com/Articles/42732/Table-driven-Approach
package com.ljn.base;
import java.util.Random;
public class TableDriven {
public
- Sybase封锁原理
chicony
Sybase
昨天在操作Sybase IQ12.7时意外操作造成了数据库表锁定,不能删除被锁定表数据也不能往其中写入数据。由于着急往该表抽入数据,因此立马着手解决该表的解锁问题。 无奈此前没有接触过Sybase IQ12.7这套数据库产品,加之当时已属于下班时间无法求助于支持人员支持,因此只有借助搜索引擎强大的
- java异常处理机制
CrazyMizzz
java
java异常关键字有以下几个,分别为 try catch final throw throws
他们的定义分别为
try: Opening exception-handling statement.
catch: Captures the exception.
finally: Runs its code before terminating
- hive 数据插入DML语法汇总
daizj
hiveDML数据插入
Hive的数据插入DML语法汇总1、Loading files into tables语法:1) LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]解释:1)、上面命令执行环境为hive客户端环境下: hive>l
- 工厂设计模式
dcj3sjt126com
设计模式
使用设计模式是促进最佳实践和良好设计的好办法。设计模式可以提供针对常见的编程问题的灵活的解决方案。 工厂模式
工厂模式(Factory)允许你在代码执行时实例化对象。它之所以被称为工厂模式是因为它负责“生产”对象。工厂方法的参数是你要生成的对象对应的类名称。
Example #1 调用工厂方法(带参数)
<?phpclass Example{
- mysql字符串查找函数
dcj3sjt126com
mysql
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在1到 N 之间。一个字符串列表就是一个由一些被‘,’符号分开的自链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。如果str不在strlist 或st
- jvm内存管理
easterfly
jvm
一、JVM堆内存的划分
分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。
工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中;
年老代满了之后会执行major gc,这个是stop the word模式,执行
- CentOS-6.3安装配置JDK-8
gengzg
centos
JAVA_HOME=/usr/java/jdk1.8.0_45
JRE_HOME=/usr/java/jdk1.8.0_45/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME
- 【转】关于web路径的获取方法
huangyc1210
Web路径
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1、 System.out.println(request.getContextPath()); //可返回站点的根路径。也就是项
- php里获取第一个中文首字母并排序
远去的渡口
数据结构PHP
很久没来更新博客了,还是觉得工作需要多总结的好。今天来更新一个自己认为比较有成就的问题吧。 最近在做储值结算,需求里结算首页需要按门店的首字母A-Z排序。我的数据结构原本是这样的:
Array
(
[0] => Array
(
[sid] => 2885842
[recetcstoredpay] =&g
- java内部类
hm4123660
java内部类匿名内部类成员内部类方法内部类
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接解决多继承问题,可以使用内部类继承一个类,外部类继承一个类,实现多继承。
&nb
- Caused by: java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.Exten
zhb8015
maven pom.xml关于hibernate的配置和异常信息如下,查了好多资料,问题还是没有解决。只知道是包冲突,就是不知道是哪个包....遇到这个问题的分享下是怎么解决的。。
maven pom:
<dependency>
<groupId>org.hibernate</groupId>
<ar
- Spark 性能相关参数配置详解-任务调度篇
Stark_Summer
sparkcachecpu任务调度yarn
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。
由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便
- css3滤镜
wangkeheng
htmlcss
经常看到一些网站的底部有一些灰色的图标,鼠标移入的时候会变亮,开始以为是js操作src或者bg呢,搜索了一下,发现了一个更好的方法:通过css3的滤镜方法。
html代码:
<a href='' class='icon'><img src='utv.jpg' /></a>
css代码:
.icon{-webkit-filter: graysc