第九篇 伪类选择器之:target伪类与:lang伪类

134 阅读4分钟

url结构解析

来源说明

版权声明:本段内容【url结构解析】为CSDN博主「冰雪_318」的原创文章修改而来

原文链接:blog.csdn.net/lhj20084720…

格式

URL的一般格式为([]内的为可选):

protocol://hostname[:port]/path/[;parameters][?query]#fragment

使用中文来表示就是

协议部分://域名部分[:端口部分]/路径部分/[;参数部分][?查询部分]#片段标识符部分

例如:

http://www.imailtone.com:80/news/index.asp?name=tom&;age=20#resume

格式解析

例如:

http://www.imailtone.com:80/news/index.asp?name=tom&;age=20#resume

  1. 协议部分:指访问服务器获取资源时,需要使用哪种协议。常用的有http、https、ftp协议等。本例中http后面的“//“为分隔符。

  2. 域名部分:指资源宿主服务器的主机名或IP地址。本例中的域名部分为:www.imailtone.com。URL中也可以使用IP作为域名。

  3. 端口部分:域名和端口之间使用“:“作为分隔符,端口不是一个URL必须的部分。http服务的默认端口是80,这种情况下端口号可以省略,如果使用了其他端口必须书写,例如:http://www.cnblogs.com:90/

注:80和8080是两种不同的端口。

80端口是http协议开放的,该协议为上网冲浪次数最多的协议,主要用于www(world wide web)即万维网传输的协议。

8080端口是被用于www代理服务的,可以实现网页浏览,经常在访问某个网站或者使用了代理服务时,会加上“:8080“端口号。另外,Apache Tomcat web server 安装后,默认的服务端口是8080。

  1. 虚拟目录部分:该部分说明了资源位于服务器的什么地方。从域名后的第一个“/“开始到最后一个“/“为止,是虚拟目录部分。本例中的虚拟目录是“/news/”。

  2. 文件名部分:从域名的最后一个”/“开始到”?“为止,是文件名部分。如果没有”?“,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。本例中的文件名是“index.asp”。

注:以上”4和5“的部分,就组成了path部分【路径部分】。

  1. 参数部分:为了向应用程序提供他们所需要的输入参数,以便正确的与服务器进行交互。URL中有个参数组件,由字符;将其与URL的其余部分分隔。

例如:”;type=7;nam=true“就是两个参数。

ftp://prep.mit.edu/pub;type=7;nam=true

  1. 查询部分:很多资源,比如数据库服务、搜索引擎,都可以通过提问问题或进行查询来缩小请求资源的范围。由字符串”?“将其与URL的其余部分分隔开来。从“?”开始到“#”为止之间的部分为参数部分。参数可以允许有多个,参数与参数之间用“&”作为分隔符。本例中的参数部分为name=tom&;age=20

  2. 片段标识符部分:”#“代表网页中的一个位置,其右面的字符就是该位置的标识符。从“#”开始到最后,都是锚部分。本例中的片段标识符部分是resume。锚部分也不是一个URL必须的部分。

:target伪类

url的片段标识符部分所指向的文档片段在css中称为target【目标】,使用:target伪类可以使得target被选中。 当片段标识符与文档中多个元素相对应【id错误的写成一样】时,这些元素将会同时被该伪类选中。

:lang()伪类

该伪类可以根据文本使用的语言来选择元素,:lang(要搜索的语言)作用与[lang|="要搜索的语言"]类似但不相同。

[lang|="要搜索的语言"]只能根据lang属性进行搜索,只有元素拥有lang时才能匹配。

:lang(要搜索的语言)可以匹配设定语言的元素的后代,且不用有lang属性,通过其他方式设定语言也可以匹配到。

在H5中,语言可以通过lang属性、meta元素以及协议【比如:http首部的字段】来进行设定