HTML对象属性详解与示例

需积分: 10 2 下载量 77 浏览量 更新于2024-09-17 收藏 6KB TXT 举报
"该文件是关于HTML对象属性的综合指南,包含了HTML中各种元素和属性的示例,如`<marquee>`标签的各种滚动行为、方向、循环次数、宽度、高度、背景颜色、滚动速度和延迟,以及文本样式标签如`<h1>`到`<h6>`的标题级别,`<b>`和`<strong>`的加粗效果,`<i>`和`<em>`的斜体与强调,`<del>`和`<ins>`的删除线和下划线,还有字体颜色、大小和样式的控制。此外,还提到了一些布局元素,如水平线`<hr>`的大小和颜色,换行`<br>`,不分段`<nobr>`,段落`<p>`,居中对齐`<center>`,以及链接`<a>`的定义和目标打开方式。" HTML是一种标记语言,用于创建网页和构建网页结构。在HTML中,对象属性是用来定制元素行为和外观的关键元素。文件中的内容详细列出了多个常见的HTML属性和它们的效果。 1. `<marquee>`标签:这是一个非标准但广泛使用的标签,用于创建滚动文本或图像。`behavior`属性设置滚动方式(slide、scroll、alternate),`direction`决定滚动方向(down、up、right、left),`loop`设置循环次数,`width`和`height`设定尺寸,`bgcolor`指定背景色,`scrollamount`和`scrolldelay`控制滚动速度和延迟。 2. 文本样式标签:`<h1>`到`<h6>`用于设置不同级别的标题,`<b>`和`<strong>`加粗文本,其中`<strong>`通常用于强调,`<i>`和`<em>`创建斜体,`<em>`也有强调的语义,`<dfn>`表示定义项,`<u>`添加下划线,`<ins>`和`<del>`用于表示插入和删除文本,`<kbd>`表示键盘输入,`<tt>`呈现固定宽度字体,`<xmp>`、`<plaintext>`和`<listing>`用于代码展示。 3. 字体和颜色控制:`<font>`标签已不推荐使用,但这里展示了如何用它来改变颜色(`color`)和大小(`size`)。现代HTML5中,更推荐使用CSS来控制字体样式,如`<font style="font-size:100px">`。 4. 布局元素:`<hr>`创建水平线,通过`size`、`width`和`color`调整;`<br>`进行换行,`<nobr>`阻止文本换行;`<p>`定义段落,`<center>`使内容居中;`<a>`定义超链接,`href`属性设置链接地址,`target`决定链接在何处打开(如`_blank`新建窗口)。 这些属性和标签是HTML基础中的重要部分,理解和掌握它们能帮助开发者更好地创建交互式和视觉吸引人的网页。在实际开发中,应结合CSS来实现更复杂的样式和布局,并遵循最新的HTML标准。

import http.client from html.parser import HTMLParser import argparse from concurrent.futures import ThreadPoolExecutor import multiprocessing.pool prefix = "save/" readed_path = multiprocessing.Manager().list() cur_path = multiprocessing.Manager().list() new_path = multiprocessing.Manager().list() lock = multiprocessing.Lock() class MyHttpParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.tag = [] self.href = "" self.txt = "" def handle_starttag(self, tag, attrs): self.tag.append(tag) # print("start tag in list :" + str(self.tag)) if tag == "a": for att in attrs: if att[0] == 'href': self.href = att[1] def handle_endtag(self, tag): if tag == "a" and len(self.tag) > 2 and self.tag[-2] == "div": print("in div, link txt is %s ." % self.txt) print("in div, link url is %s ." % self.href) lock.acquire() if not self.href in readed_path: readed_path.append(self.href) new_path.append(self.href) # print("end tag in list :" + str(self.tag)) lock.release() self.tag.pop(-1) def handle_data(self, data): if len(self.tag) >= 1 and self.tag[-1] == "a": self.txt = data def LoadHtml(path, file_path): if len(file_path) == 0: file_path = "/" conn = http.client.HTTPConnection(path) try: conn.request("GET", file_path) response = conn.getresponse() print(response.status, response.reason, response.version) data = response.read().decode("utf-8") if response.status == 301: data = response.getheader("Location") lock.acquire() new_path.append(data) lock.release() data = "" #print(data) conn.close() return data except Exception as e: print(e.args) def ParseArgs(): # 初始化解析器 parser = argparse.ArgumentParser() # 定义参数 parser.add_argument("-p", "--path", help="域名") parser.add_argument("-d", "--deep", type=int, help="递归深度") # 解析 args = parser.parse_args() return args def formatPath(path): path = path.removeprefix("https://") path = path.removeprefix("http://") path = path.removeprefix("//") return path def doWork(path): path = formatPath(path) m = path.find("/") if m == -1: m = len(path) data = LoadHtml(path[:m], path[m:]) with open(prefix + path[:m] + ".html", "w+", encoding="utf-8") as f: f.write(data) parse.feed(data) def work(deep,maxdeep): if deep > maxdeep: return args = ParseArgs() cur_path.append(formatPath(args.path)) readed_path.append(formatPath(args.path)) parse = MyHttpParser() e = multiprocessing.Pool(4) for i in range(args.deep): size = len(cur_path) e.map(doWork,cur_path) cur_path[:]=[] for p in new_path: cur_path.append(p) new_path[:]=[] print(i)优化此代码能在windows下运行

2023-06-03 上传