整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML基础总结

.h1-h6标签

都是标题标签,定义一段话的标题,h1最大,依次递减,h6最小

标题标签的作用:让文本加粗显示

2. 段落标签:p标签

用来显示一段文本(图片),它会忽略源代码中的排版

块元素:独占一行的元素,和相邻的元素不能共享同一行,所有的块元素都有align属性,h1-h6和p元素都是块元素

3. 格式标签:

b标签:加粗文本

del标签:包含的文本中间有条横线

em标签:包裹的文本会显示为斜体

i标签:包裹的文本会显示为斜体

pre标签:显示源代码的排版

strong标签:和em作用一样,都有强调的意思,如果要强调一段文字,建议使用strong标签

u标签:给文本添加下划线

sup:定义上标文本

sub:定义下标文本

4. 图片标签img,用来把图片显示在网页上

必须属性:1.src:图片的路径(可以用相对路径或绝对路径,不建议用绝对路径)

alt:定义图片无法显示时的代替文本

相对路径:以当前文件所在的位置为参考路径,定义出来的路径叫相对路径

绝对路径:文件在硬盘上的物理路径叫绝对路径,

例如:

D:\work181129JAVA班\课件-web前端课件\web-day1\Code\web-day1\img\tly.jpg

可选属性:

1.title:鼠标放在图片上时的提示文字,所有元素都有title属性

2.width:定义图片的宽度,默认以像素px为单位,可以省略单位不写

3.height:定义图片的高度

br标签:换行标签,可以写成<br>或者<br/>

hr标签:水平线标签,可以写成<hr>或者<hr/>,属性有:width(宽度),size(高度),color(颜色)

5. span:通常用于修饰文本,可以给它添加样式,例如style="color: red;"

div:把文档分割成若干个独立的部分 ,块级元素

6. ul定义无序列表type属性定义列表项目的标记,默认是disc

type="disc" 默认黑色圆点

type="circle" 空心圆点

type="square" 方块

ol定义有序列表type属性定义项目的标记,默认是数字

type="A"或"a":表示大写字母或者小写字母

type="I"或type="i":表示罗马大写字母或罗马小写字母

7. border:定义表格的边框属性

cellspacing:单元格之间的距离,设置为0则只有1条边框了

cellpadding:单元格的内容到边框之间的距离

8. 表头:表格中的第一行,用来显示列标题的,使用th定义表头的每一列,把里面的内容加粗居中显示

通常,第一行是表头行,从第二行开始就是数据行(显示具体的数据),

使用td(table data cell )表示数据行每一列

表格的align="center":让表格整体居中显示

tr(table row)的align="center":让行里面的内容居中显示

caption:定义表格的标题,会相当于表格居中

9. colspan:跨列,即在水平方向上合并单元格,值是要合并的单元格数目

rowspan:跨行,即在竖直方向上合并单元格,值是要合并的单元格数目

10. form:表单标签,用于创建一个表单,收集用户输入的数据,并提交给服务器程序

属性:action:指定将表单的数据发送到哪个服务器程序

method:指定用哪种方式来提交数据,常用值有GET,POST,默认值是get

表单域:又叫表单元素,作用是收集用户输入的数据 ,并提交给服务器端程序

常用的表单域:1.input元素:它的type属性有不同值,表现出不同形态

type="text":表示文本框,提供文本的输入

type="radio":单选框(单选按钮), 多个单选框的name值必须相同,如果name不同则不能互斥,提交时是提交value值

type="checkbox":复选框,当name相同时,可以提交多个值(value属性的值)

type="file"":文件域,让用户选择本地文件上传到服务器

type="hidden":隐藏域,对用户不可见的元素,可以有默认值并且能提交给服务器(在javaEE开发中会大量使用隐藏域)

2. select元素:表示下拉列表,又叫下拉框,在下拉列表中用option元素定义待选择的选项,默认第1个选项被选中,

设置某个option被选中: 在option元素上添加selected="selected"或者selected

设置下拉列表为多选下拉列表:在select元素上加multiple属性

关于选中元素的设置

1)设置单选框或复选框被选中的属性是checked

2)设置下拉列表的某个选项被选中的属性是selected

11. body标签:

1.background:定义网页的背景图片,如果背景图片很小,会自动在水平和竖直方向上平铺展示

2.bgcolor:定义网页的背景颜色

12. textarea:文本域,又叫多行文本框,cols是文本区内的宽度,rows:行数

placeholder:用来设置单行文本框(不是textarea)里的默认提示文字,当输入了新的内容后,该提示文字就消失了

label:本身没有什么效果,当结合单选按钮或复选框使用时,如果label的for属性和按钮的id相同,则点击

label后就相当于点击了按钮,会将单选框或复选框选中

表单按钮:

1.提交按钮: <input type="submit">,提交按钮作用是将表单数据发送到action指定的服务器上

2.重置按钮: <input type="reset">,作用是将表单中数据清空

3.普通按钮:<input type="button">,普通按钮在没有添加js代码情况下,是不能提交表单的

13. frameset:框架集,用于将整个浏览器窗口划分成多个小窗口,每个小窗口称为一个frame,每个小窗口(frame)都可以,加载一个独立的html文档

使用frameset的cols或rows属性定义如何分割整个大窗口,

cols:定义水平方向上分割的各个frame的百分比,

rows:定义竖直方向上分割的各个frame的百分比,

noresize:不能调整frame的宽或高 frameborder="0":去掉frame的边框

*代表剩余百分比,会自动计算

使用frame来定义每个小窗口,src指frame所加载的网页的相对路径

14. iframe:能够包含其它文档(网页)的内联框架内联就是行内,因为它能和相邻的元素共享同一行

src:要加载的文档的路径 width:宽度,height:高度

frameborder:边框,0或no代表无边框

15. 将超链接所跳转的页面显示在iframe的技巧:

1)给iframe元素添加一个name属性,例如

2)超链接添加属性target,值应该是iframe元素的name

16. 实体集

来的产品经理,想做一个和qq或者微信聊天一样的,上下拖动动态改变文本内容框和编辑器布局的需求。 其实一开始是一头雾水的,但是通过万能的mdn,以及充满智慧的我,最终还是完成了这个需求。 其中最核心的还是ResizeObserver这个第一次用的类,所以会在这里做一些记录。

  • ResizeObserver初识
  • ResizeObserver实战

ResizeObserver初识

  • ResizeObserver interface可以报告元素content或者border box,或者svg元素box大小的变化
  • ResizeObserver.disconnect() 取消观察某个observer的所有observed目标元素。
  • ResizeObserver.observe() 初始化观察一个指定元素。
  • ResizeObserver.observe() 取消观察一个指定元素。
  • new ResizeObserver(callback) callback的入参包括entries和observer。

entries是一个数组,它由所有的ResizeObserverEntry object组成。通过for (let entry of entries) {}的方式,entry代表一个ResizeObserver object,一个entry由contentRect和target组成。

在resize相关实践中,entry的contentRect对象是最最重要的。

{target: div, contentRect: DOMRectReadOnly}
contentRect: DOMRectReadOnly
bottom: 312.3125
height: 292.3125
left: 20
right: 626
top: 20
width: 606
x: 20
y: 20
__proto__: DOMRectReadOnly
target: div
__proto__: ResizeObserverEntry

ResizeObserver实战

Make element resizable

  • 元素应用resize css属性。
  • 元素ResizeObserver化。
<div class="main" :style="{minHeight: dynamicMainHeight}">
      <chatView></chatView>
</div>
.main {
    resize: vertical;
    overflow: auto;
}
 observeChatView() {
    if (window.ResizeObserver) {
      const viewElem = document.querySelector('.main');
      const resizeObserver = new ResizeObserver((entries) => {
        for (const entry of entries) {
          if (!this.initialHeight) {
            this.initialHeight = entry.contentRect.height;
          }
          if (this.initialHeight) {
            const deltaHeight = this.initialHeight - entry.contentRect.height;
            this.$bus.$emit('rerenderViewAndEditor', deltaHeight);
          }
        }
      });
      resizeObserver.observe(viewElem);
    } else {
      this.$Message.warning('不支持ResizeObserver');
    }
  },
},

动态计算的editor组件

<div
  class="rich-text-editor"
  contenteditable
  data-placeholder="按下Enter发送消息,按下Shift+Enter换行"
  :style="{height: dynamicHeight}"
></div>
computed: {
  dynamicHeight() {
    return `${defaultEditorHeight + this.deltaHeight}px`;
  },
},
this.$bus.$on('rerenderViewAndEditor', (deltaHeight) => {
    this.deltaHeight = deltaHeight;
});

动态计算的view组件

自动跳到最新一条消息的chatView组件需要减去deltaHeight,从而增大scrollHeight的高度。

this.$bus.$on('rerenderViewAndEditor', (deltaHeight) => {
  this.visiableHeight = document.body.clientHeight - deltaHeight;
  this.deltaHeight = deltaHeight;
});

scrollToBottom() {
  this.$nextTick(() => {
    this.scrollTop = this.scrollHeight - this.deltaHeight;
  });
},

最终效果

参考资料

https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/ResizeObserver https://github.com/mdn/dom-examples/blob/master/resize-observer/resize-observer-text.html

努力成为优秀的前端工程师!

期待和大家交流,共同进步

微信公众号: 大大大前端 / excellent_developers

努力成为优秀前端工程师!

.什么是框架

框架将浏览器划分成不同的部分,每一部分加载不同的网页,实现在同一浏览器窗口中加载多个页面的效果

2.frameset 划分框架标签

1)语法格式

<frameset>....</frameset>

2)属性

1.cols:使用“像素数”和%分割左右窗口,“*”表示剩余部分;如果使用“*”,“*”表示框架平均分成2个;如果使用“*”,“*”,“*”表示框架平均分成3个。

2.rows:使用“像素数”和%分割上下窗口,“*”表示剩余部分。

3.frameborder:指定是否显示边框,0不显示,1显示。

4.border:设置边框的大小,默认值5像素。

3)frame 子窗口标签

1.定义

frame 标记是一个单标记,该标记必须放在 frameset 中使用,在 frameset 中设置了几个窗口,就必须对应使用几个 frame 框架,而且还必须使用 src 属性指定一个网页。

2.属性
  1. src:加载网页文件的URL地址
  2. name:框架名称,是链接标记的target所要参数
  3. noresize:表示不能调整框架大小,没有设置时就可以调整
  4. scrolling:是否需要滚动条:auto(根据需要自动出现)、yes(有)、no(无)
  5. frameborder:是否需要边框:1(显示边框)0(不显示边框)

3.举例

<!DOCTYPE html><html>  <head>    <meta charset="utf-8">    <title>文档标题</title>  </head>  <frameset cols="*,*" frameborder="0">    <frame src="https://www.taobao.com" noresize>    <frame src="https://www.baidu.com" noresize>  </frameset></html>