有谁可以给我解释一下"通配符"的知识

有谁可以给我解释一下"通配符"的知识,第1张

通配符

1、基本的通配符有哪些?

·“?”可替代单个字符。

·“*”可替代任意字符。

·方括号“[charset]”可替代charset集中的任何单个字符。

对最后一条做些解释。[cChH]通配符便可替代c或h字符的大小写形式。

通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代

替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符

包括字符包括字符对之间的所有字符。

与DOS相比,UNIX的通配符机制要比DOS好得多。在DOS中,任何在“*”

之后,在“.”之彰的字符均被忽略,所以下面的指令将不能得到你想

象的结果。

del *bak.*

在DOS中,用户只能用此命令删除当前目前下的所有文件,除非系统要

求你不这样做。而在UNIX系统中,“*”可替代包括0在内的任意数字的

字符,但一行中的其余特征也仍需匹配,因此“bak.*”可匹配

newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因为后

者不含“.”。这非常巧妙,可大大方便用户,而“*bak”则可匹配以上

所有的词条,包括newbak。

2、能在一条指令中用多个通配符吗?

可以,如

rm a*out*tmp?

该命令可以删除一系列临时性的输出文件,如ab.out.temp1、ab.out.temp1

等。

3、如何利用通配符使指令更灵活?

UNIX可将有一定关的文件看作一集合的一部分,用户可以用该集合去匹配。

所以,如果你需要删除file1.temp、file2.temp……file9.temp,只须健入:

rm file[0-9].temp

该技巧的用处在于可以用删除那些相要删除的文件。如果你每天都要为一个

非常重要的数据库做一个“dump”报告,你把文件存入dump.'date%h%d',

它包括一系列文件如下:

dump.jun23

dump jun24

dump jun25

dump.jun26

再让我们假设因为每个文件的容量都在100M左右,所以磁盘空间很快会被占满,

因此需要每隔几天删去一些老的文件,只留下最近的两个文件,为此,键入:

rm –i du*[34]

这条指令将删去那些以“du”开头并以“3”或“4”结尾的文件。

通配符的使用

在使用文件时,主文件名和扩展名中还可以使用通配符“*”“?”。其中“*”代表从它所在位置直到“.”(主文件名中为到“.”前,扩展名为“.”后)的所有字符;“?”代表它所在位置的任意字符。

实例:

A.?? 表示文件主名为A,扩展名不超过两个字符的文件

???.com 表示文件名不超过三个字符,扩展名为COM的文件

*.* 表示所有文件

ABC.* 表示文件名为ABC,具有任意扩展名的文件

*.EXE 表示以EXE为扩展名的所有文件

A*.* 表示以字符A开头的所有文件 例如: ABC.txt ABD.com等

A??.* 表示文件主名以A开头且不超过三个字符,具有任意扩展名

的文件

tabs)

%x

匹配任何数量的非空格

[range]

匹配任何数量的在[range]中列出的字符

^

强制从一行的开始进行匹配

$

强制匹配到一行的结束

(pattern)

保存匹配的式样到参数%1~%9

~

包括其中的字符不会被解释为特殊字符

{val1|val2|val3|...}

匹配其中列出的任何特殊的串

{^string}

不匹配其中包括的串

使用[range]时,你可以在其中列出需要的字符例如 [abc] 或使用范围 [a-c] 。

为了匹配特殊字符本身,可以使用~将特殊字符括住,例如:~[test~] 将匹配字符串

[test] 而不是作为 [range] 来匹配。

只使用$可以匹配一个空行。

别名中使用参数的例子

我们在解谜过程中向npc提出的问题通常是以:

ask npc about here

ask npc about rumors

ask npc about name

这样三个命令开始的,把他们定义成别名可以节省一些时间,像这样:

#al askn {ask %1 about hereask %1 about hereask %1 about name}

可如果npc的名字有两个单词,或一堆同名的npc中你要问其中第二个,就需要把别名

中的参数改为%-1,此时执行askn bing 2或askn tian bing就不会出错了。

为了更好的理解参数的作用,试试执行下面的命令:

#al tt test1 %1 test2 %2 test3 %-1 test4 %-2

看看执行{tt a1 a2 a3 a4 a5}的结果,一切都清楚了吧?

表达式

当执行运算时,如果所有参数均为数字,则执行数学运算,否则执行字符串 *** 作。以

下是一些常用的表达式(v1和v2代表变量或另外的表达式):

v1+v2

如果v1或v2不是数字,则执行字符串相加

v1-v2

从v1中减去v2

v1*v2

相乘

v1/v2

v1除v2,结果不含小数

v1\v2

取模

v1&v2

逻辑运算and

v1 and v2

同上

v1 | v2

逻辑运算or

v1 or v2

同上

v1 xor v2

逻辑运算xor

v1 = v2

如果v1等于v2返回真

v1 >v2

如果v1大于v2返回真

v1 <v2

如果v1小于v2返回真

v1 >= v2

如果v1大于等于v2返回真

v1 <= v2

如果v1小于等于v2返回真

v1 <>v2

如果v1不等于v2返回真

v1 != v2

同上

v1 =~ v2

如果表达式v1中的pattern包含v2,返回真

v1 ~= v2

同上

-v1

返回v1的负值

!v1

逻辑运算非

命令:

number]

Syntax:牋?#number command

这个命令向MUD重复发送number次命令,number必须是一个常数,如果要使用变量,请

使用loop命令。当前已经重复的计数保存在系统变量%repeatnum中。

实例:

#4 fight bing %i

命令将被解释成{fight bing 1fight bing 2...fight bing 4}发往MUD10

abort

Syntax:牋?#AB

停止分析处理当前的命令行中#ab以后的部分

实例:

get all corpse#ABORTsplit

在这个例子中,split将被忽略

action

Syntax:牋?#AC pattern command [classname]

Related:牋?#TRIGGER #T+ #T- #IGNORE

这是zMUD中最有用的特性之一。当从MUD中收到一条匹配的文本时,预先定义的命令将

被执行。这条命令的第一个参数是被匹配的文本,如果文本中包含空格,你需要将它

用括号{}括起来。pattern中能够包含特殊的pattern matching symbols 和通配符。

第二个参数是将要被执行的命令,超过一个单词的命令也需要使用括号{}。第三个参

数用于给不同的触发动作命名分类,便于管理。高级的触发设置必须使用参数

(Preferences)对话框,在对话框中,你可以决定触发的动作是紧跟在匹配的文本之

后还是在新的一行中执行。

一个简单的例子:

#AC {你买下一件藤甲} {wear jia}

这样,无论何时只要你买了藤甲,立刻可以自动穿上。

自动登录的例子:

#AC {^您的英文名字:} {river}

#AC {^请输入相应密码:} {12345}

然后在参数对话框中关闭 Trigger on Newline 设置并且打开 Trigger on Prompt 这

样名字和密码将紧接着提示行输入而不会等待换行。注意,字符 ^ 将强制从一行的头

部开始匹配。

触发中的参数

#AC {^You get (%d) coins} {chat I get %1coin } rich

当你看到一行“You get [number] coins”时,其中的数值将被存放在变量%1中,其

后执行的命令可以使用这个数值。在这个例子中用到了类(class)名rich,这样你就

能够使用t+和t-命令来打开或关闭这个触发。

add

Syntax:牋?#AD variable amount

这个例子允许你做一个简单的算术计算。amount可以是数值或变量。如果要做减法,

可以使用负值。复杂一些的算术计算,请使用 #math 命令。

实例:

#AD moves 1

给变量@moves加一

#ACTION {You get (%d) coins} {#AD gold %1}

当捡到钱时,把捡钱的数量加到 @gold 变量中

alarm

Syntax:牋?#ALA timepattern command

Related:牋?#TRIGGER

建立一个基于时间的触发,而不是根据从MUD中获得的信息触发。timepattern可以是

特定的时间或包括通配符。如果在minus前加上(-),则表示连线时间而不是实际时

间。

timepattern 的格式表示成 hours:minutes:seconds ,其中的小时和分钟是可选项,

如果不指明,则假定小时和分钟被通配符*取代。通配符*可以代替任何数值,而*10可

以匹配10、20、30等等。你也可以指定几个数值用(|)来分隔。Finally, you can

put parenthesis around the wildcards to save the values matched to the

%1..%9 parameters。(这句话我不懂,谁来帮我?)

实例:

#ALARM -30:00 {save}

这里的 hour 没有指定,所以默认为*。 因此,这个例子将在连线后每隔30分钟执行

save 命令。

#ALARM 3:00:00 {gossip Why arent you sleeping?}

命令将在凌晨3点触发。

#ALARM -59:(55|56|57|58|59) {#SHOW 60-%1}

这个命令在你连线时每个小时的最后5秒在屏幕上显示 5 4 3 2 1。

alias

Syntax:牋?#AL [aliasname] [string]

Related:牋?#VARIABLE

保存一个或一组命令到一个较短的别名中。当执行别名时,命令中的变量能够被扩

展。如果需要延迟变量扩展,可以使用两个变量标志(%%)。

如果不带参数执行命令alias,所有的别名将被列出在输出窗口。如果在命令alias中

指定别名,被指定的别名将被显示。

别名能够用<tab>键扩展。在命令行中键入一个别名并按下<tab>键,命令行中的别名

将被替换成别名中包含的命令。

如果在定义别名时使用参数(%1,%2,...),在命令行中紧随别名的文本将取代这些

参数。特殊的参数%-1到%-99表示-n之后的所有文本。(使用参数的例子)

实例

#AL fs {fill waterskin}

当执行fs时,fill waterskin将被送往MUD。

#AL fs {fill @container}

在别名中使用变量,变量可以在购买容器时用触发赋值。

#AL make {#ALIAS %1 {cast %1 %%1]

在这个例子中,执行make heal将发出#ALIAS heal {cast heal %1}命令,这样就建立

了一个新的别名heal。

all

Syntax:牋?#ALL command

发送一个命令到所有角色的窗口

实例:

#ALL quit

发送 quit 命令到所有激活的角色窗口。

backup

Syntax:牋?#BA

Related:牋?#PATH #RETRACE

从当前正在记录的路径中删除最后一步

实例:

如果当前路径是 .nsew 那麽执行 #BA 将使其成为 .nse 。如果当前路径是 .n4s 则

执行 #BA 后将成为 .n3s 。?

beep

Syntax:牋?#BEEP [value]

Related:牋?#PLAY

在pc机喇叭中发声,value 对应相应的 windows 事件。

实例:

#BEEP 16

播放windows 事件 16 的声音。

#BEEP#WAIT 500#BEEP

beep两次,中间间隔0.5秒。

button

Syntax:牋?#BU number

触发一个自定义按钮,编号(从1至16)决定触发的按钮。number 可以是一个变量。

实例:

#BU 1

触发第一个按钮,效果相当于在屏幕上按下这个按钮

c+

Syntax:牋?#C+ [name]

Related:牋?#C-

开始获取文本到窗口name中,如果省略name,文本将送入command editor,(如果

editor中的capturing设置可用)。如果在preferences对话框中选中Capture

Commands设置,键入的命令也将被送往这个窗口。

例子:

#c+ temp

开始拷贝所有从MUD中获得的文本到名为temp的窗口中

c-

Syntax:牋?#C-

Related:牋?#C+

停止获取文本到另一个窗口

capture

Syntax:牋?#CAP [number] [name]

Related:牋?Editor window

获取最后number行送到另一个窗口。如果省略number,则只获取最后一行。如果

number是-1,所有的行将被拷贝。如果name省略,发送的目标将是command editor

window。

例子

#tr {咖啡告诉你:救命!} {#cap tell}

将tell的内容存入名为tell的窗口,避免忽略。

case

Syntax:牋?#CA index command1 [commandn]

允许从命令列表中选择一个命令执行。index参数决定执行哪一个命令。如果index大

于列表中的命令数,将从第一个开始重新选择。例如,列表中有4个命令,而index=

6,则第二个命令将被执行。你也可以用变量%random随机的选择需执行的命令。

实例:

#CASE 2 {first command} {second command} {third command}

执行第二个命令

#CASE @joincmd {join} {rescue}

如果变量@join是奇数,执行join,偶数执行rescue。

#CASE %random {Hello} {Hi there} {Hiya} {Hi}

随机选择问候语。

character

Syntax:牋?#CH

Related:牋?#HOST #PW

从Charater atabase中返回当前角色的名字

colse

Syntax:牋?#CL filenum

Related:牋?#FILE

根据给定的文件号关闭文件,文件必须是已经用#file命令打开的。

实例:

#CLOSE 1

关闭一号文件

clr

清除屏幕。如果要清空scrollback buffer并收回内存,请使用菜单命令Empty。

color

Syntax:牋?#CO attribute [pattern]

Related:牋?#HIGHLIGHT

如果省略pattern参数,这个命令将改变最后一行的颜色。颜色属性见下表。如果包括

pattern参数,将建立一个颜色触发,引起触发的条件除了字符对应外还需要有相同的

颜色。

Color values:

black牋?

0

blue牋

1

green

2

cyan

3

red

4

magenta

5

brown

6

gray

7

tellow

14

white

15

bold

128

要显示亮色,在基本值上加8,作为背景颜色,需要用基本值乘16。例如:使用红色背

景的值是4*16或64。在前景上使用粗体字,需要再加128。这样,在蓝色背景上的粗体

白字的值是:128+1*16+15=159。

实例:

#CO red

将最后一行的颜色变成红色

#CO bold,red

将最后一行变成红色粗体

connect

Syntax:牋?#CON

Related:牋?#DISCONNECT

断开并重新连接到当前的MUD,与菜单命令File/Reconnect 相同

cr

Syntax:牋?#CR

送一个空行到MUD

cw

Syntax:牋?#CW color

Related:牋?#COLOR

在一次成功的触发之后,改变引起触发的内容的颜色

实例:

#TRIGGER {告诉你} {#CW red}

当有人tell 你时,显示较为醒目的颜色

dde

Syntax:牋?#DDE server topic macro

这个命令允许你通过动态数据交换使用外部程序。zMUD也有一些内建的函数用于DDE:

%dde(server,topic,item)

%ddepoke(server,topic,item,value)

%ddemacro(server,topic,macro)

如果你使用%ddeopen(server,topic)函数打开DDE连接,在其他函数中不再需要指明

server和topic,这个函数是全局性的,对于zMUD的任何窗口均有效。结束DDE连接

时,使用%ddeclose()函数。

zMUD也拥有自己的DDE服务,server名是zmud,topic也是zmud,item为data。

实例:

#DDE NETSCAPE WWW_OpenURL {<a target="_blank" href="http://www.zg169.net/~czmud/index.html}">http://www.zg169.net/~czmud/index.html}</a>

使用netscape打开zMUD从入门到精通主页,因为~zMUD的特殊字符,所以需要再加一个

~写成~。

#DDE ZMUD ZMUD {chat* byequit}

使用DDE向MUD发出命令

%dde(Excel,TEST.XLS,R1C1)

使用excel装入test.xls并返回单元R1C1的值。

%ddepoke(Excel,TEST.XLS,R1C1,@tank)

向test.xls的R1C1单元写入变量@tank的值

谁能用DDE写一个自动对诗的机器人?

default

Syntax:牋?#DE [special-char-string]

Related:牋?#NODEF

保存你当前使用的特殊字符并恢复系统默认的特殊字符,在使用现成的命令脚本时,

这个命令可以保证脚本中的标准特殊字符被正确识别。使用#NODEF命令将恢复你自定

义的特殊字符。

zMUD中使用的特殊字符有

1

Command Char

#

将紧随的字串解释为命令

2

Separator Char

分隔多个命令

3

Variable Char

@

用于扩展变量的值

4

History Char

!

调用命令缓冲区中的命令

5

Parameter Char

%

指出系统变量和函数

6

Movement Char

.

调用路径变量或函数

7

Focus Char

:

向指定窗口发命令

8

Quote Char

~

紧随其后的特殊字符当作普通字符

9

Must be a space at the end

*?

*fool

实例:

#DEF

保存你当前使用的特殊字符并恢复系统默认的特殊字符

#DEF {xx$xxxxx }

保存你当前使用的特殊字符并回复默认的特殊字符,然后将@改为$。

disconnect

Syntax:牋?#DI

Related:牋?#CONNECT

断开当前的连接

实例:

#TRIGGER {你已陷入半昏迷状态} {#DI}

断线就不会被杀死吗?我没试过,hehe。

ECHO

Syntax:牋?#EC string

Related:牋?#SAY

在当前窗口中显示字串,类似与say命令。除了用于离线测试trigger似乎没有别的用

处。

实例:

ERASE

Syntax:牋?#ERA filenum

Related:牋?#FILE

从硬盘中删除用#file打开的文件

实例:

#FILE 1 old.log

#ERA 1

删除old.log文件,需要先用#file命令打开。

EXEC

Syntax:牋?#EXEC command

执行一个命令,命令中可以包括变量

实例:

#TRIGGER {^咖啡告诉你(*)} {#EXEC %1}

执行咖啡的指令。(我可没那麽傻)

FILE

Syntax:牋?#FI number name

Related:牋?#READ #WRITE

打开文件准备读写。zMUD可以打开10个文件,文件号1~5打开文本文件,能够按顺序

读或追加,文件号6~10打开记录文件用于随机读写。如果nuber已经用于打开的文

件,则前一个文件将被关闭。打开的文件只能位于zmud.exe所在的目录且不能是

EXE,HLP和MUD文件。

实例:

#FILE 1 test.txt

打开text.txt作为文件1。

FIND

Syntax:牋?#FIN

找出在当前地图上的定位,通过look命令用当前房间的描述比较地图数据定位匹配的

房间,与automapper的菜单命令find作用相同。

FORALL

Syntax:#FO list command

逐条列出字串列表内容并执行命令。列表使用|分隔,逐个赋值给变量%i,并执行命

令。

实例:

list=sys|ups|yahoo

#froall @list {kill %i}

我一定是疯了。

FREEZE

Syntax:牋?#FR [value]

切分屏幕查看以前的显示,value=0表示恢复屏幕。这条命令相当于Ctrl-z或单击右边

的滚动条。(所以没什么用)

GAG

Syntax:牋?#GA [pattern]

Related:牋?#UNGAG

如果pattern省略,命令将从屏幕上删除最后一行。如果包括pattern,将删除所有匹

配行,相当于#ACTION pattern '#GAG'。

实例:

#ga 咖啡

这叫眼不见为净。

HELP

Syntax:牋?#HE [command]

不带参数相当与从菜单中选择help,否则显示指定命令的参数。

H+

Syntax:牋?#H+

Related:牋?#H-

从命令缓冲区中取得下一条命令,只在使用过#h-命令后有效,相当于向下的箭头键。

H-

Syntax:牋?#H-

Related:牋?#H+

从命令缓冲区中取得上一条命令,相当于向上的箭头键。

HISTORY

Syntax:牋?#HIS

显示命令缓冲区中的命令,每条显示的命令都带有行号,可以用!加行号来执行某条命

令。!!执行最新的命令。!+字母将执行最近一个以!后字母开头的命令。命令缓冲区

的大小默认为20,可由参数对话框改变。

你也可以用左键单击命令输入行左边的三角以d出交互命令缓冲区对话框来选择命

令,单击将命令送至命令输入行以供编辑,双击将命令直接送往MUD。

<tab>键可以配合命令缓冲区的使用,如果你用!加数字或字母,再按下<tab>键,命令

将拷入命令输入行以供编辑。

实例:

#HI

显示最后20条命令

!!

执行最后一条命令

!3

执行命令缓冲区中的最后一条命令

!k

执行最后一条以k开头的命令

!k<TAB>

将最后一条以k开头的命令拷入命令输入行以供编辑

HIGHLIGHT

Syntax:牋?#HI [pattern]

Related:牋?#COLOR

如果省略pattern,最后一行文本将以高亮显示,如果包括pattern,匹配的文本将以

高亮显示。相当于命令#ACTION pattern '#HIGHLIGHT'。

HOST

Syntax:牋?#HO

Related:牋?#CHAR #PW

返回当前连接的主机名

IF

Syntax:牋?#IF expression true-command [false-command]

执行条件分支,如果表达式为真,执行true-command,否则执行falise-command(可

选)。表达式中可以包含变量和运算子。

实例:

#if (@qn>30) {learn_skills}

在战斗中如果潜能达到了30,执行别名learn_skills返回师父处学习。

#if (@hp>10) {exercise @hp} {exert recover}

如果气大于10就修炼内功,否则补气。

#IF (@line =~ "You receive (%d) coins") {split %1}

如果变量@line与pattern "You receive (%d) coins"匹配,执行{split %1},判断匹

配需要使用“=~”。

IGNORE

Syntax:牋?#IG

Related:牋?#T+ #T-

打开或关闭所有触发,第一次执行#ig 关闭所有触发,第二次执行恢复正常。

INPUT

Syntax:牋?#IN string

将文本放入命令输入行,替换当前内容

实例:

#in get @item

扩展变量item后将命令置入命令输入行

KEY

Syntax:牋?#KE key command

定义按键执行的命令,key值需注明按键的全名,例如:F1,CTRL-A 或 ALT-F2

实例:

#key F1 eat baozi

定义F1键执行eat baozi 命令

<ALT-D>={drink jiudai}

定义 ALT-D 键执行 drink jiudai 命令

KILLALL

Syntax:牋?#KILLALL

删除所有的别名、宏、触发、<tab>缩写

LMAP

Syntax:牋?#LM path command

Related:牋?#LOOP

穿越指定的路径并在每个房间执行指定的命令,变量%i将记录房间数

实例:

#LMAP 3sn {#SHOW %roomname(%i)}

从当前的地图定位向南走三步,向北走一步,并显示每个房间的名称

LOAD

Syntax:牋?#LOA filename

Related:牋?#SAVE

装入指定的设置文件,filename中可以使用变量。注意:装入新的设置文件时,原来

的设置文件中的改变不会被保存

实例:

#load dc

装入设置文件dc.mud。(.mud是默认的扩展名)

<F1>={#load combat}<F2>={#load cocial}

为战争与和平定制的设置文件分别用F1和F2载入

LOOK

Syntax:牋?#LOOK

执行MUD的look命令并重新写入地图的房间数据

LOOP

Syntax:牋?#LOO range command

重复执行由range指定数量的命令,range包括最小值和最大值,中间用逗号分隔,如

果range中只有一个数字,默认的最小值是1,循环的次数记录在变量%i中,可在命令

中调用。

实例:

#LOO 3 north

向MUD中送入north命令3次

#LOO 3,4 {get all from corpse %i}

取出第三和第四具尸体中的所有东西

#LOO @num {eat baozi}

吃包子@num口

LOG

Syntax:牋?#LO [filename]

开始在给定的文件中记录从MUD中获得的文本,如果文件不存在,则建立文件并开始记

录,如果文件已存在,则打开存在的文件并追加记录。省略参数用于开关记录

实例:

#LO test.txt

开始将MUD的所有输出记入test.txt

#LO

开关记录,如果正在记录,该命令将停止记录,否则开始记录

MAP

Syntax:牋?#MAP direction

Related:牋?#PATH

在当前路径上增加一个方向

#MAP north

如果当前路径是.s,则更新为.sn,同时向北移动一步

MATH

Syntax:牋?#MAT variable expression

Related:牋?#ADD

将表达式的结果赋值给变量。表达式中可以包括数字、逻辑运算和字符串函数,表达

式中包含的变量将被扩展。

实例:

#MATH test (1+3)*4

将计算结果16赋值给变量test

#MATH test2 @test-4

如果@test的值是16,则变量test2将被赋值12

#ALIAS add {#MATH value %1+%2}

add 3 4

执行后变量value的值为7

MARK

Syntax:牋?#MA

Related:牋?#PATH

开始记录新的路径,正在记录的路径将被废弃

MEDIA

Syntax:牋?#ME function

Related:牋?#PLAY

向当前的多媒体设备发送命令,通常在#play之后使用,function中可以使用变量,可

用的function依设备不同而不同值,一般有:

back

返回一步

close

关闭当前文件

eject

放弃当前设备

next

播放下一曲目

pause

暂停

paly

## CSS选择器

# 标签选择器

# id选择器

# 类选择器

# 后代选择器

# 子元素选择器

# 交集选择器

# 并集选择器

# 兄弟选择器(相邻兄弟选择器/通用兄弟选择器)

# 序选择器(CSS3中最具代表性)

# 属性选择器

# 通配符选择器

# 伪元素选择器

标签选择器

1.什么是标签选择器?

作用:根据指定的标签名称,在当前界面中找到所有该名称的标签,然后设置属性

2.格式:

标签名称{

属性: 值

}

注意点:

1.标签选择器选中的是当前界面中所有的标签,而不能单独选中某一个标签

2.标签选择器无论藏得多深都能被选中

3.只要是HTML中的标签就可以作为标签选择器

id选择器

1.什么是id选择器?

作用:根据指定的id名称找到对应的标签,然后设置属性

格式:

#id名称{

属性: 值

}

注意点:

1.每个HTML标签都有一个属性叫做id,也就是说每个标签都可以设置id

2.在同一个界面的id名称是不可以重复的

3.在编写id选择器时一定要在id名称前面加上#

4

id的名称是有一定的规范的

4.1.if的名称只能由字母/数字/下划线组成

4.2.id名称不能以数字开头

4.3id名称不能是HTML标签的名称

4.4在企业开发中一般情况下如果仅仅是为了设置样式,我们不会使用id,因为前端开发中是留给js使用的

类选择器

什么是类选择器?

作用:根据指定的类名称找到对应的标签,然后设置属性

格式:

.类名称{

属性: 值

}

注意点:

1.每个HTML标签都有一个属性叫做class,也就是说每个标签都可以设置class

2.在同一个界面的class名称是可以重复的

3.在编写class选择器时一定要在class名称前面加上.

4.类名的命名规范和id名称的命名规范一样

5.类名解释专门用来给某个特定的标签设置样式的

6.在HTML中每个标签可以同时绑定多个类名

格式:

<标签名称 class=“类名1 类名2 类名3”>

错误写法

id和class的区别?

1.1

id相当于人的身份z不可以重复

class相当于人的名称可以重复

1.2

一个HTML标签只能绑定一个id名称

一个HTML表圈可以绑定多个class名称

2.id选择器是以#开头

class选择器以.开头

3.在企业开发中到底使用id选择器还是用class选择器

id选择器一般是给js用的,除非特殊情况,否则不要用id去设置样式

4.在企业开发中一个开发人员对类的使用可以看出这个开发人员的技术水平

后代选择器

什么是后代选择器?

-作用:找到指定标签的所有特定的后代标签,设置属性

-格式:

标签名称1 标签名称2{

属性: 值

}

先找到名称叫做标签名称1的标签,然后再在这个标签下面去查找所有名称叫做标签名称2的标签,然后再设置属性

-注意点:

1.后代选择器必须用空格隔开

2.后代不仅仅是儿子,也包括孙子/重孙子.只要最终是放到指定标签中的都是后代

3.后代选择器不仅仅可以使用标签名称还可以使用其他选择器

子元素选择器

什么是子元素选择器?

-作用:找到所有标签中特定的直接子元素,然后设置属性

-格式:

标签名称1>标签名称2{

属性: 值

}

先找到名称叫做”标签名称1”的标签,然后再这个标签中找到所有的直接子元素名称叫做”标签名称2”的元素

-注意点:

1.子元素选择器只会查找儿子,不会查找其他被嵌套的标签

2.子元素选择器,之间需要用>连接,而且不能有空格

3.子元素选择器不仅仅可以使用标签名称还可以用其他选择器

4.子元素选择器可以通过>符号一直延续下去

1.后代选择器和子元素选择器之间的区别?

1.1

后代选择器使用空格作为连接符号

子元素选择器使用>作为连接符号

1.2

后代选择器会选中指定标签中,所有的特定后代标签

子元素选择器只会选中指定标签中,所有的特定直接标签

2.后代选择器和子元素选择器之间的共同点

2.1

后代选择器和子元素选择器都可以使用标签名称/id名称/class名称来作为选择器

2.2

后代选择器和子元素选择器都可以通过各自的连接符号一直延续下去

3.在企业开发中如何选择

交集选择器

什么是交集选择器?

-作用:给所有选择器选中的标签中,相交的那部分标签设置属性

-格式:

选择器1选择器2{

属性: 值

}

-注意点:

1.选择器1和选择器2之间没有任何的连接符号

2.选择器可以使用标签的名称/id名称/class名称

3.交集选择器仅仅作为了解,企业开发中用的并不多

并集选择器

什么是并集选择器?

-作用:给所有选择器选中的标签设置属性

格式:

选择器1,选择器2{

属性: 值

}

注意点:

1.并集选择器必须使用,来连接

2.2.选择器可以使用标签的名称/id名称/class名称

兄弟选择器

1.相邻兄弟选择器 CSS2

-作用:给指定选择器后面[紧跟]的那个选择器选中的标签设置属性

格式:

选择器1+选择器2{

属性: 值

}

注意点:

1.相邻兄弟选择器必须通过+连接

2.相邻兄弟选择器只能选中紧跟其后面的那个标签,不能选中被隔开的标签

2.通用兄弟选择器 CSS3

-作用:给指定的选择器后面的所有选择器选中的所有标签都设置属性

-格式:

选择器1~选择器2{

属性: 值

}

-注意点:

1.通用兄弟选择器必须用~连接

2.通用兄弟选择器选中的是指定选择器后面某个选择器选中的标签后面的所有标签

序选择器(CSS3中新增的选择器中最具代表性)

1.同级别的第几个

:first-child 选中同级别中的第一个标签

:last-child 选中同级别中的最后一个标签

:nth-child(n) 选中同级别中的第n个标签

:nth-last-child(n) 选中同级别中的倒数第n个标签

:only-child 选中父元素中唯一的子元素

:nth-child(odd) 奇数 选中同级别中的所有奇数个标签

:nth-child(even) 偶数 选中同级别中的所有偶数个标签

:nth-child(xn+y) 选中同级别中的所有的用户自定义的(xn+y)个标签

x和y是用户自定义的,而n是一个计数器,从0开始递增 有多少个标签n就递增多少次

注意点:不区分类型

2.同类型的第几个

:first-of-type 选中同级别中同类型的第一个标签

:last-of-type 选中同级别中同类型的最后一个

:nth-of-type(n) 选中同级别中同类型的第n个标签

:nth-last-of-type(n) 选中同级别中同类型的倒数第n个标签

:only-of-type 选中父元素中唯一类型的某个标签

属性选择器

什么是属性选择器?

作用: 根据指定的属性名称找到对应标签,然后设置属性

格式:

[attribute]

作用:根据指定的属性名称找到对应的标签,然后设置属性

[attribute=value]

作用:找到有指定属性,并且属性的取值等于value的标签,然后设置属性

最常见的应用场景,就是用于区分input属性

1.属性的取值是以什么开头的

[attribute|=value] CSS2

[attribute^=value] CSS3

两者之间的区别:

CSS2中的只能找到value开头并以-和其他内容隔开的标签,而CSS3可以找到以value开头的所有标签

2.属性的取值是以什么结尾的

[attribute$=value]  CSS3

3.属性的取值是否包含某个特定的值的

[attribute~=value] CSS2

[attribute*=value] CSS3

两者之间的区别:

CSS2中的只能找到独立的单词,也就是说value用空格和其他内容隔开的标签,而CSS3可以找到包含value的所有标签

通配符选择器

什么是通配符选择器?

-作用:给当前界面上所有的标签设置属性

-格式:

*{

属性: 值

}

-注意点:

由于通配符是设置界面上所有的标签的属性,所以在设置前会遍历所有的标签,如果当前界面上的标签比较多,那么性能会比较差,所以企业开发中一般不会使用通配符选择器

1.什么是伪元素选择器?

伪元素选择器作用就是给指定标签的内容前面添加一个子元素或者给指定标签的内容后面添加一个子元素

格式:

给指定标签的内容前面添加一个子元素

标签名称::before {

属性名称:值

}

给指定标签的内容后面添加一个子元素

标签名称::before {

属性名称:值

}

这里的“*”号是通配符,即指,网页html中所有标签意思。如:*{padding:0... }由于不同浏览器对于同样的页面元素有不同的默认样式,所以使用通配符星号(*)先将所有可能影响布局的默认样式统一一下是下十分必要的。而星号(*)匹配所有元素,省去了一个一个去写元素名称的麻烦。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6172683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-17
下一篇 2023-03-17

发表评论

登录后才能评论

评论列表(0条)

保存