CSS伪元素速查

纯CSS实现气泡提示框:伪元素与border三角形原理详解 在前端UI开发中,气泡提示框(Tooltip)是常见的交互元素,但用图片实现往往存在适配成本高、不易换肤等问题。核心技术在于利用CSS伪元素(::before/::after)生成装饰内容,并结合border属性绘制三角形——当元素宽高为0时,边框的斜切拼接自然形成三角形状。该方案无需额外图片资源,颜色可跟随CSS变量动态变化,在响应式布局与多主题场景下具有极高可维护性。除基础用法外,通过drop-shadow可让阴影贴合气泡与尾巴的整体轮廓,搭配圆角、边框与透明色技巧能模拟真实描边效果。文章面向工程实践, 阅读详情

CSS伪元素

All CSS Pseudo Elements:

SelectorExampleExample description
::afterp::afterInsert something after the content of each element
::beforep::beforeInsert something before the content of each element
::first-letterp::first-letterSelects the first letter of each element
::first-linep::first-lineSelects the first line of each element
::selectionp::selectionSelects the portion of an element that is selected by a user

All CSS Pseudo Classes:

SelectorExampleExample description
:activea:activeSelects the active link
:checkedinput:checkedSelects every checked element
:disabledinput:disabledSelects every disabled element
:emptyp:emptySelects every element that has no children
:enabledinput:enabledSelects every enabled element
:first-childp:first-childSelects every elements that is the first child of its parent
:first-of-typep:first-of-typeSelects every element that is the first element of its parent
:focusinput:focusSelects the element that has focus
:hovera:hoverSelects links on mouse over
:in-rangeinput:in-rangeSelects elements with a value within a specified range
:invalidinput:invalidSelects all elements with an invalid value
:lang(language)p:lang(it)Selects every element with a lang attribute value starting with “it”
:last-childp:last-childSelects every elements that is the last child of its parent
:last-of-typep:last-of-typeSelects every element that is the last element of its parent
:linka:linkSelects all unvisited links
:not(selector):not( p)Selects every element that is not a element
:nth-child(n)p:nth-child(2)Selects every element that is the second child of its parent
:nth-last-child(n)p:nth-last-child(2)Selects every element that is the second child of its parent, counting from the last child
:nth-last-of-type(n)p:nth-last-of-type(2)Selects every element that is the second element of its parent, counting from the last child
:nth-of-type(n)p:nth-of-type(2)Selects every element that is the second element of its parent
:only-of-typep:only-of-typeSelects every element that is the only element of its parent
:only-childp:only-childSelects every element that is the only child of its parent
:optionalinput:optionalSelects elements with no “required” attribute
:out-of-rangeinput:out-of-rangeSelects elements with a value outside a specified range
:read-onlyinput:read-onlySelects elements with a “readonly” attribute specified
:read-writeinput:read-writeSelects elements with no “readonly” attribute
:requiredinput:requiredSelects elements with a “required” attribute specified
:rootrootSelects the document’s root element
:target#news:targetSelects the current active #news element (clicked on a URL containing that anchor name)
:validinput:validSelects all elements with a valid value
:visiteda:visitedSelects all visited links

CSS3按钮设计完全指南:状态、动画、无障碍与性能优化 CSS3是现代前端开发中实现界面交互的技术基石,按钮作为最基础的UI组件,其设计质量直接影响用户操作体验与整体视觉品质。通过合理运用状态伪类、过渡动画、渐变阴影以及伪元素等CSS3特性,开发者能够打造出兼具美感与可用性的交互按钮。本文系统梳理了CSS3按钮设计的完整知识体系,涵盖浏览器默认样式重置、hover/focus/active状态选择器、立体阴影与内阴影叠加、transition与animation的分工合作、disabled禁用态处理、屏幕阅读器无障碍支持,以及动画性能优化与浏览器兼容性排查等核心 阅读详情

相关推荐

CSS content属性实现伪元素多行换行的4种生产方案

CSS的content属性用于插入装饰性文本,其本质是生成匿名文本节点而非HTML内容,因此不解析\n或<br>等换行标记。原理上,只有标准转义符\A(U+000A)能被CSS解析器识别为真实换行符,配合white-space: pre才能生效;而display: table-cell、flex绝对定位、grid布局及JavaScript动态注入等组合方案,则从结构层突破content的单行限制。这类技术广泛应用于状态徽章、悬停提示、列表前缀等前端场景,尤其在电商后台、SaaS管理台等复杂UI系统中成为关键

anqiu4023的博客 529

web前端css伪元素使用阿里iconfont中Unicode编码

web前端css伪元素使用阿里iconfont中Unicode编码 1 在阿里iconfont中创建项目 新建项目 搜索自己想要的图标并添加入库 点击购物车 添加至项目 回到“我的项目”,点击“下载至本地”,可以下载到web项目的根目录 解压后把包含.iconfont.css文件的文件夹链接进项目 从iconfont.css中复制下面这一段到自己项目的css文件中 可以看到图标的Unicode编码,在css中可以用斜杠“\r60b” html中 css中 上图中的“font-f

weixin_44827068的博客 1144

干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性

本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。

weixin_28308325的博客 328

CSS 伪元素+媒介查询篇

伪元素 伪元素: 伪元素与伪类选择器没有关系 伪元素区别于普通的html元素, 其是没有对应的标签的 适用场景: a. 如果仅仅是装饰效果, 并且没有一个比较好的语义化标签来实现这个效果 , 可以考虑伪元素实现 b. 如果我们书写标签的原因不是为了展示该标签, 而仅仅是为了解决其他元 素造成的问题. 可以考虑使用伪元素实现(例如清除浮动流) 伪元素没有标签名, 那么我们就没办法直接找到它, 我们是通过其父级, 找到并设置伪元素的. 伪元素 ::after和::before (

い南秋乱港 3337

基于Arduino UNO的OLED显示器使用方法x2(Arduino系列五)

Arduino使用OLED显示模块可以实现串口数据显示,还可以与其他模块联合使用,实现实时显示开发板实时数据。

LNN0212的博客 4171

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 896

伪类选择器新增和伪元素-7/14

CSS3 CSS3是CSS(层叠样式表)技术的升级版本,于1999年开始制订,2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块。 浏览器内核以及其前缀 CSS标准中各个属性都要经历从草案到推荐的过程,css3中的属性进展都不一样,浏览器厂商在标准尚未明确情况下提前支持会有风险,浏览器厂商对新属性的支持情况也不同,所以会加厂商前缀加以区分。如果某个属性已经从草案变为了或接近推荐方案,并且厂商已经完全实现了推荐属性,那就不

weixin_47067248的博客 277

三维点云转深度图

点云投影过程是将三维点云数据转化为二维图像坐标的关键步骤,它的实现涉及到相机内外参数的计算,包括相机的内部参数(如焦距和主点)和外部参数(如相机位置和方向)。具体来说,可以通过将每个点的三维坐标转换为相机坐标系下的坐标,然后使用相机内部参数和外部参数来计算在二维图像中的坐标。接着计算每个点的深度值,将深度值映射到像素值上,最后创建深度图像并将深度值赋给对应的像素值。这里需要注意的是,在将深度值映射到像素值上时,需要将像素值转换为 uchar 类型,否则在将深度值赋给像素值时会出现类型不匹配的错误。

点云兔子的博客 3171

HTML-CSS知识速查

HTML-css基础速查

weixin_43654363的博客 878

Sigrity System Explorer Transient Analysis模式进行瞬态仿真分析操作指导-单端信号

Sigrity System Explorer Transient Analysis模式可以用于瞬态仿真分析,通过搭建简易拓扑用于前仿真分析通道的时域性能,下面搭建一个简易的单端拓扑进行说明,以下图为例,准备好发送接收端的IBIS模型, (ibis_se.ibs,本例发送接收端都使用相同的IBIS模型),以及传输线的S参数模型(welement_se.sp)最上方的图形界面是传输线的模型,本例是一个上下都有参考平面的带状线,右侧的梯形是蚀刻角度,根据W1和W2以及铜厚来确定。

weixin_54787054的博客 417

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1807

before css 旋转_web前端:CSS的常用属性速查表

要想写出优美的CSS作品,想象力固然很重要,然而基础也是不可忽略的。相信大部分人怕写CSS的原因是被它庞大的基础知识体系给吓到了,在此笔者推荐一个叫freecodecamp的网站,通过闯关的方式来学习前端三剑客,用它入门CSS是最佳的选择!当你成功地入了门之后,便可以开始探索CSS的全貌了。本文是CSS属性的速查表,配合在线API文档使用即可我自己是一名从事了多年开发的web前端老程序员,目前辞职...

weixin_36321633的博客 134

halcon与QT联合:(5.1)瓶盖检测以及QT界面搭建

halcon实现瓶盖检测与定位代码: dev_close_window() dev_open_window(0, 0, 1024, 1024, 'black', WindowHandle) list_image_files('C:/Users/TIMI/Desktop/picture/circle', 'default', [], ImageFiles) for J := 1 to 4 by 1 *read image read_image(halconImage, ImageFil

m0_37957160的博客 1044

CSS 3 快速参考备忘清单:选择器、Flexbox、Grid 与动画完整速查指南

本篇技术指南基于开源仓库 jaywcjlove/reference 中的 [docs/css.md](https://link.gitcode.com/i/99630a8efebaadb828a098c99beda479) 备忘清单整理而成,系统覆盖 CSS 的三种引入方式、全量选择器语法、字体/颜色/背景/盒子模型属性、动画、Flexbox 与 Grid 布局、动态内容(变量与计数器)、常用函数

gitblog_00356的博客 1134

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

CSS选择器与样式关联

本文系统梳理了CSS与HTML的三种关联方式(行内样式、内部样式表、外部样式表)及其优先级规则,重点讲解了各类CSS选择器的用法与区别:包括基本选择器(元素、ID、Class、属性选择器)、组合与包含选择器(后代选择器、子选择器)、通配符选择器,以及伪元素选择器(::first-letter、::first-line、::before、::after)和伪类选择器(:nth-child、:nth-of-type、:hover、:focus、:checked)。

既然你都点开这里了,那可以给我点个关注吗?可以吗?可以吗? 756

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HTML 标签表 学习笔记 H5篇

一、HTML5标签元素速查表 标签 描述 <!--...--> 注释 <!DOCTYPE> 定义文档类型 <a> 超文本链接 <abbr> 定义缩写 <acronym> ...

RONG_YAO的博客 677

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

深入理解CSS伪元素

定义 伪元素顾名思义伪装成元素,但不是元素,这与生成内容相关。生成内容主要指由浏览器创建的内容,而不是由标志或内容来表示。生成内容主要由:before和:after伪元素来实现,当然伪元素还包括:first-line,:first-letter和::selection 用法 :first-letter 指定一个元素第一个字母的样式 注意1:所有前导标点符号应与第一个字母一同应用该样式 注意2:只能...

web前端开发教程htmlcssjs 372

css伪元素

css伪元素 伪元素根据字面理解就是伪装成元素,但是伪元素并不是元素,而是于生成的内容相关联。生成内容主要指由浏览器创建的内容,而不是由标志或内容来表示。生成内容主要由:before和:after伪元素来实现,当然伪元素还包括:first-line,:first-letter和::selection。 :first-letter :first-letter设置一个元素第一个字母的样式...

145

深入学习css伪类和伪元素及其用法

前言 CSS的伪类和伪元素在平时的代码中经常会出现,可是一旦别人问你,什么是伪类,什么是伪元素,可能还是不能完整的表述出来,下面我们来一探究竟。 伪类和伪元素定义 伪类用于在页面中的元素处于某个状态时,为其添加指定的样式。 伪元素会创建一个抽象的伪元素,这个元素不是DOM中的真实元素,但是会存在于最终的渲染树中,我们可以为其添加样式。 [重点]最常规的区分伪类和伪元素的方法是:实...

嘿嘿 404

CSS知识全面汇总——速查手册

CSS 文章目录CSS简介id选择器class选择器CSS创建外部样式表内部样式表内联样式多重样式优先级背景文本字体链接列表表格元素显示模式块元素行内元素行内块元素显示模式的转换盒子模型边框轮廓外边距填充分组与嵌套显示浮动定位Overflow对齐组合选择符伪类伪元素导航栏下拉菜单提示框图片属性选择器表单媒体类型网页布局 简介 p { color:red; text-align:center; } 不要在属性值与单位之间留有空格 CSS注释以 /* 开始, 以 / 结束 id选择器 #pa

weixin_45813276的博客 1443

深入理解伪元素

定义   伪元素顾名思义伪装成元素,但不是元素,这与生成内容相关。生成内容主要指由浏览器创建的内容,而不是由标志或内容来表示。生成内容主要由:before和:after伪元素来实现,当然伪元素还包括:first-line,:first-letter和::selection     用法 :first-letter   指定一个元素第一个字母的样式   [注意1]所有前导标点符号应与第一...

小浩IT 2720

css 平移到某个位置_CSS 的常用属性速查表

CSS 的常用属性速查表要想写出优美的 CSS 作品,想象力固然很重要,然而基础也是不可忽略的。常用分类:选择-定位-布局-盒模型-字体-背景-动画-其他SelectorsType元素本身,pClass类,p.classIDid,p#idDescendant后代,ul liAttribute属性,input[type="checkbox"]Sibling相邻元素,input ~ labe...

weixin_35539437的博客 539
上一篇: PE文件及其结构
下一篇: 你必须会的DFS的递归实现与堆栈实现
Hack Rabbit
Hack Rabbit 新星创作者: 运维技术领域 新星创作者: 运维技术领域
博客等级 码龄9年 2893粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hack Rabbit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值