浏览器标准模式和怪异模式之间的区别是什么?
所谓的标准模式是指,浏览器按W3C标准解析执行代码;怪异模式则是使用浏览器自己的方式解析执行代码,因为不同浏览器解析执行的方式不一样,所以我们称之为怪异模式。浏览器解析时到底使用标准模式还是怪异模式,与你网页中的DTD声明直接相关,DTD声明定义了标准文档的类型(标准模式解析)文档类型,会使浏览器使用相应的方式加载网页并显示,忽略DTD声明,将使网页进入怪异模式(quirks mode)。
说说隐藏元素的方式有哪些?
1.display: none;:将元素完全从页面中隐藏。它不会保留空间,且无法通过页面布局获取该元素。
2.visibility: hidden;:元素在页面中不可见,但它仍会占据空间,保留原始尺寸和位置。
3.opacity: 0;:使元素完全透明,但仍保留元素的布局空间。
4.position:absolute; left: -9999px;:将元素定位在屏幕外,负的左偏移量使其不可见,并且不占据空间。
5.width: 0; height: 0; overflow: hidden;:将元素的宽度和高度设置为零,并将超出部分隐藏。该方法常用于隐藏特定内容,例如移除辅助文本或图标。
6.clip-path: inset(100%);:使用 clip-path 属性将元素裁剪为不可见。设置为 inset(100%) 可以将整个元素隐藏。
7.transform: scale(0) or scale(0, 0);:通过应用 scale 变换将元素缩放至零,使其不可见。元素仍会保留布局空间。
8.使用负的外边距或内边距:通过将外边距或内边距设置为负值,使元素超出父容器边界并隐藏起来。
说说你对页面中使用定位(position)的理解?
使用css布局position非常重要,语法如下: position:static | relative | absolute | fixed | center | page | sticky 默认值:static,center、page、sticky是CSS3中新增加的值。 (1)、static 可以认为静态的,默认元素都是静态的定位,对象遵循常规流。此时4个定位偏移属性不会被应用,也就是使用left,right,bottom,top将不会生效。 (2)、relative 相对定位,对象遵循常规流,并且参照自身在常规流中的位置通过top,right,bottom,left这4个定位偏移属性进行偏移时不会影响常规流中的任何元素。 (3)、absolute a、绝对定位,对象脱离常规流,此时偏移属性参照的是离自身最近的定位祖先元素,如果没有定位的祖先元素,则一直回溯到body元素。盒子的偏移位置不影响常规流中的任何元素,其margin不与其他任何margin折叠。 b、元素定位参考的是离自身最近的定位祖先元素,要满足两个条件,第一个是自己的祖先元素,可以是父元素也可以是父元素的父元素,一直找,如果没有则选择body为对照对象。第二个条件是要求祖先元素必须定位,通俗说就是position的属性值为非static都行。 (4)、fixed 固定定位,与absolute一致,但偏移定位是以窗口为参考。当出现滚动条时,对象不会随着滚动。 (5)、center 与absolute一致,但偏移定位是以定位祖先元素的中心点为参考。盒子在其包含容器垂直水平居中。(CSS3) (6)、page 与absolute一致。元素在分页媒体或者区域块内,元素的包含块始终是初始包含块,否则取决于每个absolute模式。(CSS3) (7)、sticky 对象在常态时遵循常规流。它就像是relative和fixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。(CSS3)
tcp三次握手,一句话概括
客户端和服务端都需要知道各自可收发,因此需要三次握手。
第一次握手:S只可以确认 自己可以接受C发送的报文段
第二次握手:C可以确认 S收到了自己发送的报文段,并且可以确认 自己可以接受S发送的报文段
第三次握手:S可以确认 C收到了自己发送的报文段
补充400和401、403状态码
(1)400状态码:请求无效
产生原因:
前端提交数据的字段名称和字段类型与后台的实体没有保持一致
前端提交到后台的数据应该是json字符串类型,但是前端没有将对象JSON.stringify转化成字符串。
解决方法:
对照字段的名称,保持一致性
将obj对象通过JSON.stringify实现序列化
(2)401状态码:当前请求需要用户验证
(3)403状态码:服务器已经得到请求,但是拒绝执行