TML常用标签有:a标签、table标签、img标签、form标签和input标签。
作用
属性
(一)href
href是hyper reference的缩写,超链接的意思。
用于指定链接目标的ur地址,(必须属性)当为标签应用href属性时,它就具有了超链接的功能;
href=“#”表示这是一个空链接;
如果href里面地址是—个文件或者压缩包,会下载这个文件。
<a href="https://google.com">超链接到google网站的主页</a>
<a href="https://google.com">超链接到google的主页</a>
<a href="//google.com">超链接到google的主页</a>
展现形式:
点击此链接,即可到达google的主页
a标签href的取值:
1、上述代码中的网址的取值(推荐使用第三行的代码)
<a href="//google.com">超链接到google的主页</a>
由于此方式能够自动补齐相关的网络地址,前面两种写错就会报错,所以推荐使用。
2、路径
当前路径下的a里面的b,b里面的c
在当前目录下寻找index.html文件
3、伪协议
<a href="javascript:;">点击后无任何点击或刷新等动作的反应</a>
<a href="#要跳转的元素的id"></a>
点击链接的时候,会跳转到指定元素所在的位置。
<a href="mailto:abcdefg@163.com ">发邮件给我</a>
<a href="tel:12345678901">打电话给我</a>
(二)targe
用于指定链接页面的打开方式
a的target取值
1、内置名字
_blank 在空白页打开
_self 在当前页面打开
_parent 在父级窗口打开
_top 在最顶级的窗口打开
<a href="//google.com" target="_blank">超链接到google网站的主页在空白页打开</a>
2、程序员的命名
window:name(在xxx页面打开)
iframe的name(iframe现在已经很少使用了,是指内嵌窗口)
(三)download
下载页面,但目前很少用,有的浏览器不支持,尤其是手机浏览器可能不支持。
1、table标签的语法:
thead:表头
tbody:表的内容,用于定义
tfoot:表的脚部
tr:table row,表格里的行
th:表格的表头部分,其中的文本内容字体加粗居中显示
td:table data,表格数据,用于定义表格中的单元格
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body>
<table>
<thead>
<tr>
<th></th>
<th>小红</th>
<th>小黄</th>
<th>小蓝</th>
</tr>
</thead>
<tbody>
<tr>
<th>数学</th>
<td>90</td>
<td>60</td>
<td>80</td>
</tr>
<tr>
<th>语文</th>
<td>88</td>
<td>95</td>
<td>97</td>
</tr>
<tr>
<th>英语</th>
<td>88</td>
<td>95</td>
<td>97</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>总分</th>
<td>266</td>
<td>250</td>
<td>274</td>
</tr>
</tfoot>
</table>
</body>
</html>
第一行的th标签为空
2、table的样式
table-layout:auto;自动计算每一行的宽高
table-layout:fixed;通过列表的宽度来决定平均宽度
border-collapse:collapse; 合并边框(默认边框与边框之间不合并)
border-spacing:0;边框为0.(边框与边框之间的距离)。
作用:发出get请求,展示一张图片。
<img src="1.JPG" alt="头像" width="400" />
当前路径下的1.jpg,确定宽度为400,只写宽度高度会自适应
属性
alt:alternate的缩写,替换的意思。替换文本,图像不能显示的文字。
路径错误显示alt内容
title:提示文本。鼠标放到图像上,显示的文字。
响应
max-width:100% 所有的图片在手机上都自适应宽度,宽度最大为100%。
事件
onload/onerror 监听图片是否加载成功,加载成功时用onload,不成功是用onerror事件。确保在onerror事件能够补救。
<body>
<img id="xxx" src="dog.jpg" alt="一只小狗">
<script>
xxx.onload = function () {
console.log("图片加载成功");
};
xxx.onerror = function () {
console.log("图片加载失败");
xxx.src = "/404.jpg";
};
</script>
</body>
监听成功时,打印出成功
监听失败时,先打印出监听失败并且开始执行加载失败是的挽救图片。404.jpg文件执行
本文为作者本人的原创文章,著作权归作者本人和饥人谷所有,转载务必注明来源。
程序开发过程中,有时候需要对一个目录下的文件进行批量操作。如果我们手动去一个个查找、处理,那么效率极低,还容易出错。因此,我们可以使用node.js,来实现一个遍历指定目录下所有文件并生成json的脚本。
node.js是一种流行的后端JavaScript运行时环境,基于Chrome V8引擎构建。它使得JavaScript代码能够在服务器上被执行,同时还支持网络编程协议,并提供了丰富的库和工具链,方便开发人员快速构建高性能、可扩展的应用程序。
我们将使用node.js,实现一个递归遍历指定目录下所有文件的方法。假设我们要遍历的目录名为dir,那么我们可以采用以下步骤:
1、使用fs.readdirSync(dir)方法读取目录中的所有文件和子目录;
2、对每个文件和子目录进行判断:
* 如果是目录,则递归调用本方法;
* 如果是文件,则记录其路径并添加到一个数组中。
示例代码:
const fs = require('fs');
const path = require('path');
function traverseDir(dir) {
const result = [];
const files = fs.readdirSync(dir);
for (const file of files) {
const filePath = path.join(dir, file);
if (fs.statSync(filePath).isDirectory()) {
// 如果是目录,则递归调用本方法
result.push(...traverseDir(filePath));
} else {
// 如果是文件,则记录其路径
result.push(filePath);
}
}
return result;
}
const files = traverseDir('./dir');
console.log(files);
有了遍历指定目录下所有文件的方法,我们接下来,可以将这些文件名组成的数组,转化为一个JSON对象。假设我们要生成的json文件名为 result.json ,那么我们可以按照以下步骤进行操作:
1、初始化一个空数组;
2、遍历处理得到的所有文件名,并使用path.parse()方法获取每个文件的基本信息;
3、将每个文件的基本信息包装成一个对象并添加到数组中;
4、将这个数组写入到result.json文件中。
示例代码:
const fs = require('fs');
const path = require('path');
function traverseDir(dir) {
const result = [];
const files = fs.readdirSync(dir);
for (const file of files) {
const filePath = path.join(dir, file);
if (fs.statSync(filePath).isDirectory()) {
result.push(...traverseDir(filePath));
} else {
result.push({
filename: path.basename(filePath),
extname: path.extname(filePath),
path: filePath,
});
}
}
return result;
}
const files = traverseDir('./dir');
fs.writeFileSync('result.json', JSON.stringify(files, null, 2));
如果您需要一个树形结构的数据格式,我们稍加改动上面的示例代码即可。
示例代码:
const fs = require("fs");
const path = require("path");
// 遍历指定目录下的所有文件,并将信息保存到JSON对象中
function traverseDirToTree(dir) {
const result = [];
const files = fs.readdirSync(dir);
for (const file of files) {
const filePath = path.join(dir, file);
const stat = fs.statSync(filePath);
// 如果是文件夹,递归遍历
if (stat.isDirectory()) {
result.push({
name: file,
type: "directory",
children: traverseDirToTree(filePath),
});
} else {
result.push({
name: file,
type: "file",
size: stat.size,
modified: stat.mtime,
});
}
}
return result;
}
const files = traverseDirToTree("./dir");
fs.writeFileSync("result.json", JSON.stringify(files, null, 2));
希望本文能够对您有所帮助,感谢您的阅读!
人人为我,我为人人,谢谢您的浏览,我们一起加油吧。
jango并不象其他WEB语言,可以在前端页面指定图片,CSS等静态资源的路径就能直接访问。
要使用静态资源,还需要一些必要的设置。
1,在项目app目录中新建一个static目录
static目录再创建一个css目录,放一个style.css文件
在static目录放一个 1.png 图片
2,配置项目的settings.py文件
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static').replace('\', '/'),
)
3,配置urls.py文件
加入如下url:
url(r'^static/(?P<path>.*)', serve, {'document_root': '/myweb/web/static'}),
配置完后就可以在前端页面使用静态资源了,
比如引用css文件:<link rel="stylesheet" href="./static/css/style.css">
比如引用图片:<img src="static/1.png">
*请认真填写需求信息,我们会在24小时内与您取得联系。