- Bazel 学习day 1 windows下源码编译执行bazel
1lI
bazel学习windowsvisualstudio
下载二进制可执行文件安装下载bazel.exe文件,设置环境变量指向bazel.exe文件方便命令行使用。下载安装VisualStudio配置环境变量配置VisualC++环境变量:BAZEL_VC=C:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\BuildTools\VC配置WindowsSDK环境变量:BAZEL_WINSDK_FULL_VERS
- python中reduce函数的运用_Python reduce函数
行有恒堂
Pythonreduce函数教程在Python2中,reduce函数可以直接使用,在Python3中,reduce函数使用之前需要使用fromfunctoolsimportreduce语句导入包。Pythonreduce函数详解Python中的reduce()用传给reduce中的函数function(有两个参数)先对集合中的第1、2个元素进行操作得到的结果再与第三个数据用function函数运算
- [python] reduce
进阶的小蜉蝣
Pythonpython
reduce是Python中的一个高阶函数,用于对可迭代对象(如列表、元组等)中的元素进行累积计算,最终返回一个单一的结果。它位于functools模块中,使用时需要先导入:fromfunctoolsimportreduce核心功能与语法reduce的语法如下:pythonreduce(function,iterable,initializer)function:一个接受两个参数的函数,用于定义累
- Windows安装sentencepiece报错: python setup.py egg_info did not run successfully
代码手艺人老羊
python开发语言
在pipinstallsentencepiece报错:pythonsetup.pyegg_infodidnotrunsuccessfully解决办法:setuptools更新库pipinstall--upgradesetuptools若还报错:UpdatetheVERSIONargumentvalue.Or,usethe...syntaxtotellCMakethattheprojectrequi
- python 非常好用的标准库itertools
openwin_top
python编程示例系列python前端开发语言
itertools是Python标准库中的一个模块,它提供了许多用于创建迭代器的高效函数。迭代器在Python中是一种非常有用的数据结构,它们允许你按需访问元素,而不需要一次性地在内存中加载整个集合。itertools模块中的函数可以帮助你创建各种复杂的迭代器,从而简化代码并提高性能。下面是一些使用itertools模块中函数的示例:无限迭代器:count():生成一个无限递增的整数序列。cycl
- Python系统库---itertools
GeniusAng丶
Pythonpythoniterator生成器数据结构
itertools库迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用,从而提高开发体验和运行效率,以至于在Python3中map,filter等操作返回的不再是列表而是迭代器。itertools中的函数大多是返回各种迭代器对象,其中很多函数的作用我们平时要写很多代码才能达到,而在运行效率上反而更低,毕竟人家是系统库。i
- Python-itertools 模块详解
wanglaqqqq
#其他实用工具python开发语言
Pythonitertools模块详解itertools是Python标准库中用于高效处理迭代任务的模块,提供了一系列生成迭代器的工具函数,适用于组合生成、数据分组、无限序列等场景,能显著简化代码并优化性能。核心功能分类itertools的函数可分为三类:无限迭代器:生成无终止的序列。有限迭代器:处理有限数据的迭代操作。组合迭代器:生成排列、组合等数学结构。常用函数及示例1.无限迭代器函数描述示例
- python-itertools模块
叶上雨珠
python生成器功能测试
itertools模块前言itertools提供的3个“无限”迭代器itertools提供多个迭代器操作函数未完待续前言模块itertools提供用于操作迭代对象的函数,官网标准库文档链接:link.itertools提供的3个“无限”迭代器count():count(10)-->1011121314…importitertools#defcount(start=0,step=1)默认参数nums
- 一个超好用的Python库:itertools
IT猫仔
pythonwindows网络
人生苦短,快学Python!很多人都致力于把Python代码写得更Pythonic,一来更符合规范且容易阅读,二来一般Pythonic的代码在执行上也更有效率。今天就先给大家介绍一个很Pythonic的Python系统库:itertools。itertools库迭代器(生成器)在Python中是一种很常用也很好用的数据结构,比起列表(list)来说,迭代器最大的优势就是延迟计算,按需使用,从而提高
- Python内置模块之itertools详细功能介绍及示例
demonlg0112
Pythonpython开发语言后端jvm运维
Pythonitertools模块详解及使用示例itertools是Python标准库中的一个模块,提供了许多用于高效循环操作的迭代器函数。这些工具既快速又节省内存,特别适合处理大数据集。下面我将详细介绍itertools的主要方法,并给出实际应用示例。1.无限迭代器1.1count(start=0,step=1)生成从start开始,步长为step的无限序列。importitertools#从1
- Vuex 源码
前端岳大宝
前端核心知识总结前端前端框架vue.js
以下是关于Vuex源码的系统梳理:一、Vuex核心架构设计1.整体架构分层dispatchcommitmutaterender监听注入Vue组件ActionsMutationsStateDevtoolsPlugins2.核心模块组成模块职责源码路径Store类状态管理核心容器src/store.jsModule系统模块化状态管理src/module/Helpers组件绑定辅助方法src/helpe
- 【Linux】Orin NX编译 linux 内核及内核模块
郭老二
linux驱动linux
1、下载交叉编译工具:gcc1)下载地址:https://developer.nvidia.com/embedded/jetson-linux选择TOOLS中的交叉编译工具:gcc11.32)解压将gcc编译器解压到指定目录中,如:/home/laoer/nvidia/gcc3)配置环境变量创建:~/nvidia/gcc/env.sh添加:#!/bin/bashexportCROSS_COMPIL
- Applitool 安装
lihui是猪
1.runtheapplitoolprogramhttps://applitools.com/tutorials/selenium-python.html#install-the-sdk2.setupthechromedriverandchromebinaryinPATH3.runpythontest.py4.viewthewebpagebyclicking:https://eyes.applit
- Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)
blues_C
Python+Playwrightpython自动化测试playwright视觉回归测试
集成Applitools进行视觉回归测试(快速入门)简介Applitools的核心特点Applitools的应用场景1.准备工作2.获取示例项目2.1下载示例代码2.2安装依赖2.3选择测试运行方式3.代码解析3.1测试用例示例4.运行测试4.1设置ApplitoolsAPI变量4.2设置ApplitoolsEyes服务器4.3启动视觉测试简介Applitools是一款基于人工智能的视觉验证测试工
- Windows编译Flash-attention模块
m0_52111823
flash-attention
博主的环境配置:windows11操作系统,cuda=11.8.r11.8,cudnn=8.9.7,git=2.47.1,cmake=4.0.0-rc4,ninja=1.12.1,vs_buildTools=17.4.21,cl=19.34.31948,torch=2.3.1编译flash-attention的环境依赖如下图flash-attentiongitmsvcninjacmaketorch
- Java实现Pdf文档内容提取
南风o
javapdf开发语言
Java实现PDF文档解析:文本与图片提取方案一、应用场景与技术选型1.1典型应用场景电子书内容解析系统扫描件信息提取合同文档自动化处理学术论文分析工具企业文档管理系统二、环境配置与依赖管理2.1Maven依赖配置org.apache.pdfboxpdfbox3.0.0org.apache.pdfboxpdfbox-tools3.0.0org.apache.pdfboxpdfbox-imageio
- 【Python】ERROR: Failed to build installable wheels for some pyproject.toml based projects
ShiinaKaze
pythonpip
问题ERROR:Failedtobuildinstallablewheelsforsomepyproject.tomlbasedprojects(grpcio,grpcio-tools,pyworld)原因与解决方法1.没有安装MicrosoftVisualC++BuildTools直接去微软官网下载。2.Python版本过高例如grpcio一般需要python3.10.x,结果你用了python
- RT-Thread开发,添加pahomqtt软件包后,env使用pkgs --update无法更新
寞水
RT-ThreadMCU辛苦钱java数据库开发语言
一、问题描述RT-Thread开发,添加pahomqtt软件包后,env使用pkgs--update无法更新。报错如下>pkgs--updateTraceback(mostrecentcalllast):File"D:\RT-ThreadStudio\platform\env_released\env\tools\ConEmu\ConEmu\..\..\..\tools\scripts\env.p
- NLP实践:pytorch 实现基于LSTM的预训练模型以及词性分类任务
某科学の憨憨
pytorchlstmpython语言模型神经网络自然语言处理分类
环境版本配置1:CUDA版本:Cudacompilationtools,release11.8,V11.8.89在cmd中用以下指令查看nvcc-V**2:cudnn版本:**8700importtorch#用这个查看print(torch.backends.cudnn.version())3:python版本:3.94:Pytorch版本:torch2.0.0+cu1185:nltk:3.8.1
- Vue Devtools 插件 - 高效Vue.js应用开发与调试
金刚廉神兽
本文还有配套的精品资源,点击获取简介:Vue.js是一个用于构建用户界面的前端JavaScript框架,而VueDevtools是一个为Chrome设计的开发者工具,它无需额外安装依赖即可使用。此压缩包提供了对Vue应用的深度调试功能,包括查看组件树、状态检查、生命周期图表、性能分析、VueRouter集成、Vuex集成、时间旅行调试以及命令行工具等。只需解压并导入Chrome浏览器,即可提升开发
- python标准库--functools.partial
风中的松柏
Python基础partialpythonfunctools
官方相关地址:https://docs.python.org/3.6/library/functools.html一.简单介绍:functools模块用于高阶函数:作用于或返回其他函数的函数。一般而言,任何可调用对象都可以作为本模块用途的函数来处理。functools.partial返回的是一个可调用的partial对象,使用方法是partial(func,*args,**kw),func是必须要
- 轻量快速的 Python ASGI 框架 uvicorn
0x8g1T9E
pythonlinuxuvicornfastaip
什么是Uvicorn?答:Uvicorn是基于uvloop和httptools构建的非常快速的ASGI服务器。什么是uvloop和httptools?答:uvloop用于替换标准库asyncio中的事件循环,使用Cython实现,它非常快,可以使asyncio的速度提高2-4倍。asyncio不用我介绍吧,写异步代码离不开它。httptools是nodejsHTTP解析器的Python实现。什么是
- Web3 Tools - 助记词生成(完整代码)
游人区
Web3Tools一步步了解Web3web3
工具介绍Web3Tools-助记词生成完整代码代码路径importReact,{useState}from'react';importGridfrom'@mui/material/Grid';importPaperfrom'@mui/material/Paper';importTypographyfrom'@mui/material/Typography';importButtonfrom'@mu
- Web3Tools - Base64
游人区
一步步了解Web3Web3Toolsweb3
理解Base64编码在计算机领域,Base64是一种用于将二进制数据转换为ASCII字符串的编码方式。它由64个字符组成,通常包括字母(A-Z,a-z)、数字(0-9)和两个额外的符号(通常是“+”和“/”)。Base64编码广泛应用于电子邮件、网页传输以及数据存储等领域原理Base64编码的原理很简单,它将3个字节的数据转换成4个字节的ASCII字符。具体来说,每个字节有8位,而Base64编码
- 「GPT」- GUID Partition Table @20210413
k4nzdroid
相关文章「MBR」-主引导记录(MasterBootRecord)「计算机」-原码、反码、补码(学习笔记)「BIOS」-基本输入输出系统「MemoryMap(x86)」参考文献Wikipedia/GUIDPartitionTable百度百科/GPTGUID分区表简介ShouldIusefdiskforpartitioningorGPTawaretools?
- 强化学习原理一
jcc3120
RL深度学习
强化学习原理,ReinforcementLearning简称RL。基础工具,Fundamentaltools基本的概念Concepts贝尓曼公式贝尔曼最优公式算法和方法,Algorithmsandmethods值迭代valueiteration策略迭代policyiteration蒙特卡洛的方法MonteCarlo时序差分的方法基于valuefunctionapproximationpolicyg
- xen编译时 Traceback (most recent call last):
sdulibh
linux编程基础虚拟机
Traceback(mostrecentcalllast):File"C:\libsvm2.88\tools\grid.py",line362,inmain()File"C:\libsvm2.88\tools\grid.py",line284,inmainprocess_options()File"C:\libsvm2.88\tools\grid.py",line91,inprocess_opti
- 重装 open-vm-tools
獨梟
个人经验linux运维ubuntu1024程序员节
因为一些特殊原因,导致虚拟机显示和鼠标操作异常,需要重装open-vm-tools1.完全清除open-vm-toolssudoapt-getpurgeopen-vm-tools-desktopsudoapt-getpurgeopen-vm-tools2.检查并删除剩余的配置文件sudoapt-getautoremove3.再次检查是否还有残留dpkg-l|grepopen-vm-tools4.重
- 线性代数 python_Python | 线性代数
cumubi7552
python机器学习人工智能神经网络线性代数
线性代数pythonLinearAlgebraisabranchofmathematicsthatdealswithlargedatabytheuseofVectorsandMatrices.Itintroducesadifferentwayofviewingandunderstandinglargedata.MatricesandVectorsaretheprimarytoolsandareus
- python怎么安装tensorflow-Python使用pip安装TensorFlow模块
weixin_39927378
1.首先确保已经安装python,然后用pip来安装matplotlib模块。2.进入到cmd窗口下,建议执行python-mpipinstall-Upipsetuptools进行升级。3.如果之前已经安装了Numpy,则需要先卸载之前的安装,因为每个Tensorflow都有一个版本的numpy对应,故要卸载之前numpy4.接着键入python-mpipinstall--upgradetenso
- 如何用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