喽大家好,我是胖达。本期视频来看看路径相关的内容。我们知道在网页中存在很多的图片,如果把这些图片和html文档放在一起,这样不光不美观,管理起来也非常不方便。通常会新建一个专门用来管理图像资源的文件夹,当需要查找图像的时候就会选择使用路径的方式来指定图像文件的位置。
路径的类型又分为两种,第一种是相对路径,第二种是绝对路径。今天先来了解一下相对路径。相对路径是相对于当前文件的位置来表示资源,也就是图片位置的路径表达方式。简单来说就是图片相对于当前html文档的位置。这里把相对路径的分类给大家列出来了,一个一个往下看。
·首先是同级路径。同级路径不需要在html里面写任何符号,只需要将文件名写到html属性里就可以了。在代码里看一下,这里有一个image,点jpg的图片和html文档处于同一级,所以在html的属性里直接写image,点jpg保存一下看看效果。
可以看到现在图片是正常展示的,同级路径下只需要在html属性里完整填写图像文件的名称就可以了。
·再来看第二个下级路径。当图像文件位于html文件下一集时,需要在html属性里完整填写同级文件夹的名称,然后斜杠写出对应图片文件的名称。
→首先打开资源文件夹,在这里新增一个images的文件夹。将image图片文件复制一份放到images文件夹里。
→打开vscode,新建一个gtml文档,这里新增一个image标签。
→在左侧资源管理器中刚刚新增的images文件夹已经显示出来了,打开以后会发现里面有一个image,点jpg的图片。把这个路径写一下,在src属性里面写入位于当前html文件同级的images文件夹的名称,使用符号斜杠找到image,点gpg,看一下效果。此时图片也完整显示出来了。
→如果在amager四文件夹里还有一个amager四文件夹,下级路径又该怎么写?在amager文件夹里再新建一个文件夹,打开vscod,在左侧的资源管理器中a major s文件夹下面又新增了一个a major s文件夹,在这里面又放了一张图片。
这张图片应该怎样让它展示出来?一起来看一下。
→首先找到同级的images文件夹,使用符号斜杠,此时vscode会提供给两个选项,一个是imagers文件夹,另一个是imager.gpg。选择imagers,imagers文件夹里面的imager.gpg的文件了,保存一下看看效果。
在浏览器中这两张图片都完美的展现出来了。
最后来看一下相对路径里面的。上级路径使用的符号是点点杠。上级路径又应该怎么理解?也就是图像文件是位于当前这个 hd ml文件的上一集。
在练习文件夹里新增一个名为 hd ml的文件夹,打开vs code,选择刚刚新增的文件夹,选择新建文件,这里需要新增一个 hd ml文档。在当前 hd ml文档中,如果想要调用上一级的 image 点 j p g 的图片应该怎么做?在 sr c 属性里面使用点点杠。
这里 vs code提供了上一集路径中存在的文件,选择 image 点 j p g,在浏览器中看下效果,此时图片也是正常显示的。如果hd ml文件藏得更深一些,把当前的文件复制一份,新增一个hd ml文件夹,将复制的文档粘贴一下,打开刚刚复制的文档,修改sr c属性里面的值,使用点点杠。
此时是没有找到 amage 点 j p g 的文件,这个时候就需要重复刚刚的操作,点点杠就能找到需要到的 amage 点 jbg 的文件了,保存一下看看效果。这里可以看到图片还是正常显示出来了。
本期视频主要了解了相对路径的三种分类,一个是同级路径,一个是下级路径,还有一个是上级路径。希望小伙伴们下来可以好好练习一下,这对于后期的内容非常重要。下期再来聊聊绝对路径。本期的内容到此结束,感谢观看,下期再见。
采集等项目时,需要对html代码进行分析,其中一个需求就是对html进行分析,得到所有的图片地址,再想办法直接上传到自己的服务器,下面是得到所有图片地址的函数。
/// <summary>
/// 取得HTML代码中所有图片的 URL。
/// </summary>
/// <param name="ResourseHtmlStrings">HTML代码</param>
/// <returns>图片的URL列表,返回null时出错</returns>
public string[] GetHtmlImageUrls(string ResourseHtmlStrings)
{
try
{
// 定义正则表达式用来匹配 img 标签
Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
// 搜索匹配的字符串
MatchCollection matches = regImg.Matches(ResourseHtmlStrings.ToLower());
int i = 0;
string[] imgURLs = new string[matches.Count];
// 取得匹配项列表
foreach (Match match in matches)
imgURLs[i++] = match.Groups["imgUrl"].Value;
return imgURLs;
}
catch (Exception ErrMsg)
{
return null;
}
}
得到的结果是图片地址数组
首先我们看看效果:
实现这样的功能需要学习以下几点内容。
1.认识<img/><map><area/></map>基本结构
首先复制一个html框架,命名为“图片区域链接.html”,示例代码如下:
<!DOCTYPE HTML>
<html>
<head>
<title>图片区域链接</title>
<meta charset="utf-8">
</head>
<body>
</body>
</html>
向<body></body>中添加<img><map><area/></map>基本结构,示例代码如下:
<body>
<img/>
<map>
<area/>
</map>
</body>
指定要添加区域链接的图片的路径,如下:
<img src="img/image1.jpg"/>
<map>
<area/>
</map>
让<img>标签通过<map>的名字来驱使<map>为自己工作。
需要两步,第一,给<map>起名字,name=“map”,为了兼容所有的浏览器,还要加上id=“map”(有的浏览器只认id)。
第二,让<img>叫出<map>的名字或id,usemap="#map"。大家要注意,叫名字时要加#。这个在之前的教程中也经常出现。
示例代码如下:
<img src="img/image1.jpg" usemap="#map"/>
<map name="map" id="map">
<area/>
</map>
下面来划分区域。
2.为图片划分区域的方法
<area>是用来划分区域的标签,area也是“”区域“”的意思。
默认的shape(形状)属性有“矩形(rect)”、“圆形(circ)”、“多边形(poly)”三个值。
分别添加三个形状,示例代码如下:
<img src="img/image1.jpg" usemap="#map"/>
<map name="map" id="map">
<area shape="rect"/>
<area shape="circ"/>
<area shape="poly"/>
</map>
下面我们就要为区域规定参数,也就是在图像上的位置和范围大小。
为<area>添加coords属性可以指定区域的位置和范围。
如果shape="rect" 则coords由四个参数组成。例如coords="0,0,50,50"。从左到右,两两一组,组成两个平面坐标,即(0,0)和(50,50),单位是“像素”,矩形区域如下:
如果shape=“circ”,coords=“50,50,10”。(50,50)定义了圆心,10是半径。如图:
如果shape=“poly”,coords的参数不少于3对!注意是“对”!从左到右,两个数就是一组坐标,三组坐标可以确定一个三角形,多组坐标可以确定多边形。例如
这组参数画出了下图中歼20的边框线(600像素*400像素,如果图像的长宽像素数变了,参数就不正确了),如图:
这时,大家会有一个问题:如何才能知道图像中某个像素点的坐标呢?
3.使用Gimp软件精准定位图片区域
使用Gimp软件可以解决这个问题。
Gimp是一款类似于Photoshop的数字图像处理软件,不同的是,Gimp是开源免费的。
下载地址:https://www.gimp.org/
双击安装即可,注意选择一下安装目录。
完成安装之后打开,界面如下:
点击“文件”找到“打开”:
选择要打开的图片名字:
点击名称后,右边会有图像预览,点击“打开”即可:
打开后如图:
把鼠标放到图像的任意位置,看左下角:
这里就会显示我们鼠标所在的像素坐标数值。
这样我们就能方便地写“poly”的coords了。
请在空闲时找一张图片演练一下吧!
4.为区域添加链接
在<area/>标签中添加href属性即可指定链接路径,如下:
href="https://www.zhihu.com/question/284642168"
添加title属性可以在鼠标滑过链接区域时提示读者,如下:
title="歼20气动外形分析"
今天的内容结束了,图像区域链接在使用时还有一些注意事项,我们下次再详细讨论。
使用碎片时间,学习完整知识!关注大鱼师兄,一起精研技艺。
HTML序章(学习目的、对象、基本概念)——零基础自学网页制作
HTML是什么?——零基础自学网页制作
第一个HTML页面如何写?——零基础自学网页制作
HTML页面中head标签有啥用?——零基础自学网页制作
初识meta标签与SEO——零基础自学网页制作
HTML中的元素使用方法1——零基础自学网页制作
HTML中的元素使用方法2——零基础自学网页制作
HTML元素中的属性1——零基础自学网页制作
HTML元素中的属性2(路径详解)——零基础自学网页制作
使用HTML添加表格1(基本元素)——零基础自学网页制作
使用HTML添加表格2(表格头部与脚部)——零基础自学网页制作
使用HTML添加表格3(间距与颜色)——零基础自学网页制作
使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作
16进制颜色表示与RGB色彩模型——零基础自学网页制作
HTML中的块级元素与内联元素——零基础自学网页制作
初识HTML中的<div>块元素——零基础自学网页制作
在HTML页面中嵌入其他页面的方法——零基础自学网页制作
封闭在家学网页制作!为页面嵌入PDF文件——零基础自学网页制作
HTML表单元素初识1——零基础自学网页制作
HTML表单元素初识2——零基础自学网页制作
HTML表单3(下拉列表、多行文字输入)——零基础自学网页制作
HTML表单4(form的action、method属性)——零基础自学网页制作
HTML列表制作讲解——零基础自学网页制作
为HTML页面添加视频、音频的方法——零基础自学网页制作
音视频格式转换神器与html视频元素加字幕——零基础自学网页制作
HTML中使用<a>标签实现文本内链接——零基础自学网页制作
*请认真填写需求信息,我们会在24小时内与您取得联系。