HTML+CSS基础面试题总结

article/2025/11/4 9:01:54

1. display:none; 和visibility:hidden;的区别

display:none; 彻底消失,释放空间。可能引发页面的reflow回流(重排)。
visibility:hidden; 就是隐藏,但是位置没释放,好比opacity:0; 不引发页面回流。

2.CSS 选择器权重如何计算

就近原则:直接选中的,一定比继承的权重大。
一样近,比权重:
id是100,class是10,标签是1,
总数权重一样谁写在下面听谁的。
行内 > 内嵌 = 外联 > 导入
!important能够提升权限,但是不能提升继承的
class=“a b c” 和挂载顺序无关,看写的顺序

3.web 前端开发,如何提高页面性能优化

数据懒加载:不显示的东西不加载,需要显示了才加载。
小图标用精灵图,合并成一张字库用gb2312不要utf-8,一个汉字少一个字节。
图片用base64
路由懒加载、组件不用不加载
使用gulp、grunt、webpack等工具压缩html、js、css代码

4.什么叫优雅降级和渐进渐强

渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器
进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级:一开始就根据高版本浏览器构建完整的功能,然后再针对低版本浏览器进行
兼容。

5.如何垂直水平居中一个元素

.parent{
display:flex;
justify‐content: center;
align‐items: center;
}

6.如何实现6px大小的字

font‐size:12px;
transform: scale(.5)

7.对单位px、em、rem、vh、vw的理解

px物理像素,绝对值;
em相对于父级的大小,相对值;
rem相对于html的大小,相对值;
vh相对于屏幕的高度,相对值;
vw相对于屏幕的宽度,相对值

8.什么是重绘和回流?(浏览器绘制过程)

重绘: 当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观、风格,而 不会影响布局的操作,比如 background color,我们将这样的操作称为重绘。
回流:当渲染树中的一部分(或全部)因为元素的规模尺寸、布局、隐藏等改变而需要重 新构建的操作,会影响到布局的操作,这样的操作我们称为回流。

常见引起回流属性和方法:

任何会改变元素几何信息(元素的位置和尺寸大小)的操作,都会触发回流。
(1)添加或者删除可见的 DOM 元素;
(2)元素尺寸改变——边距、填充、边框、宽度和高度
(3)内容变化,比如用户在 input 框中输入文字
(4)浏览器窗口尺寸改变——resize 事件发生时
(5)计算 offsetWidth 和 offsetHeight 属性
(6)设置 style 属性的值
(7)当你修改网页的默认字体时。
回流必定会发生重绘,重绘不一定会引发回流。回流所需的成本比重绘高的多,改变父节
点里的子节点很可能会导致父节点的一系列回流。

9.如何减少重绘和回流

通过className或cssText一次性修改样式, 而非一个一个改
离线模式: 克隆要操作的结点, 操作后再与原始结点交换, 类似于虚拟DOM
避免频繁直接访问计算后的样式, 而是先将信息保存下来
绝对布局的DOM, 不会造成大量reflow
div不要嵌套太深, 不要超过六层

10.浏览器的渲染原理

(1)首先解析收到的文档,根据文档定义构建一棵 DOM 树,DOM 树是由 DOM 元素及属性节点组成的。
(2)然后对 CSS 进行解析,生成 CSSOM 规则树。
(3)根据 DOM 树和 CSSOM 规则树构建渲染树。渲染树的节点被称为渲染对象,渲染对象是一个包含有颜色和大小等属性的矩形o,渲染对象和 DOM 元素相对应,但这种对应关系不是一对一的,不可见的 DOM 元素不会被插入渲染树。还有一些 DOM 元素对应几个可见对象,它们一般是一些具有复杂结构的元素,无法用一个矩形来描述。
(4)当渲染对象被创建并添加到树中,它们并没有位置和大小,所以当浏览器生成渲染树以后,就会根据渲染树来进行布局(也可以叫做回流)。这一阶段浏览器要做的事情是要弄清楚各个节点在页面中的确切位置和大小。通常这一行为也被称为“自动重排”。
(5)布局阶段结束后是绘制阶段,遍历渲染树并调用渲染对象的 paint 方法将它们的内容显示在屏幕上,绘制使用 UI 基础组件。值得注意的是,这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的 html 都解析完成之后再去构建和布局 render 树。它是解析完一部分内容就显示一部分内容,同 时,可能还在通过网络下载其余内容。

11.常见的浏览器端的存储技术有哪些?

浏览器常见的存储技术有 cookie、localStorage 和 sessionStorage。
还有两种存储技术用于大规模数据存储,webSQL(已被废除)和 indexDB。
IE 支持 userData 存储数据,但是基本很少使用到,除非有很强的浏览器兼容需求。

12.请描述一下 cookies,sessionStorage 和 localStorage 的区别?

浏览器端常用的存储技术是 cookie 、localStorage 和 sessionStorage。
cookie 其实最开始是服务器端用于记录用户状态的一种方式,由服务器设置,在客户端存储,然后每次发起同源请求时,发送给服务器端。cookie 最多能存储 4 k 数据,它的生存时间由 expires 属性指定,并且 cookie 只能被同源的页面访问共享。
sessionStorage 是 html5 提供的一种浏览器本地存储的方法,它借鉴了服务器端 session的概念,代表的是一次会话中所保存的数据。它一般能够存储 5M 或者更大的数据,它在当前窗口关闭后就失效了,并且 sessionStorage 只能被同一个窗口的同源页面所访问共享。
localStorage 也是 html5 提供的一种浏览器本地存储的方法,它一般也能够存储 5M 或者更大的数据。它和 sessionStorage不同的是,除非手动删除它,否则它不会失效,并且 localStorage 也只能被同源页面所访问共享。
上面几种方式都是存储少量数据的时候的存储方式,当我们需要在本地存储大量数据的时
候,我们可以使用浏览器的 indexDB 这是浏览器提供的一种本地的数据库存储机制。它不
是关系型数据库,它内部采用对象仓库的形式存储数据,它更接近 NoSQL 数据库。

13.如何让一个未知高度的div垂直居中

在这里插入图片描述

14.定位有哪几种?分别简述其特点

absolute :生成绝对定位的元素, 相对于最近一级的 定位不是 static 的父元素来进行定位。
fixed (老IE不支持)生成固定定位的元素,通常相对于浏览器窗口或 frame 进行定位。
relative 生成相对定位的元素,相对于其在普通流中的位置进行定位。
static 默认值。没有定位,元素出现在正常的流中。

15.一次完整的http事务是怎样的一个过程

域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户

16.简述一下src和href的区别

  • src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
  • src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素
  • href是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,如果我们在文档中添加
  • 那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用link方式来加载css,而不是使用@import方式
  • 17.清除浮动的几种方式

  • 1、【.clr{clear:both;}】,设置了clear属性的元素,其上边框会紧贴着浮动元素的margin-bottom边界位置渲染,忽略其margin-top设置
    3、伪类after清浮动:
    【.clr:after{content:“”;clear:both;display:block;height:0;visibility:hidden;line-height:0;} .clr{zoom:1}】。
    4、使用【display:table】。【display:flex·】
    5、使用overflow除visible,类似于激发haslayout。
    6、使用浮动父元素清浮动。

18.CSS3新增伪类有那些?

p:first-of-type 选择属于其父元素的首个元素
p:last-of-type 选择属于其父元素的最后元素
p:only-of-type 选择属于其父元素唯一的元素
p:only-child 选择属于其父元素的唯一子元素
p:nth-child(2) 选择属于其父元素的第二个子元素
:enabled :disabled 表单控件的禁用状态。
:checked 单选框或复选框被选中。

19.Doctype作用,HTML5 为什么只需要写

doctype 是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义DTD来解析文档.<!DOCTYPE>声明必须是HTML文档的第一行,位于html标签之前

20.移动端1px边框问题

1、使用宽高加背景色
2、使用box-shadow
3、使用border-image


http://chatgpt.dhexx.cn/article/KGmskPJG.shtml

相关文章

HTML面试题整理

HTML面试题整理 01.说一下对语义化的理解&#xff1f;✅ 对开发者友好&#xff0c;让人更容易读懂&#xff0c;利于代码可读性对机器友好&#xff0c;让搜索引擎更容易读懂&#xff0c;利于seo 02.说一下HTML5有哪些更新/新增&#xff1f;✅ 新增语义化标签&#xff0c;音频…

安全-反射性xss基础注入

目录 题目 代码分析 注入过程及思路 1、第一次注入 2、第二次注入 3、第三次注入 4、第四次注入 题目 <?php header(X-XSS-Protection: 0); $xss isset($_GET[xss])? $_GET[xss] : ; $xss str_replace(array("(",")","&",&qu…

网络安全-靶机dvwa之XSS注入Low到High详解(含代码分析)

目录 XSS(DOM)-LOW 普通注入 代码分析 后端 前端 XSS(DOM)-MIDIUM 普通注入 大小写绕过 Html标签绕过 闭合标签 代码分析 XSS(DOM)-HIGH 闭合HTML标签绕过 代码分析 主要步骤 漏洞原因 XSS(Reflected)-LOW 普通注入 代码分析 主要步骤 漏洞原因 XSS(Refle…

关于HTML 代码注入,XSS攻击问题解决

大部分的网站一般都有评论功能或留言功能&#xff0c;或类似可以让用户写东西的地方。 如果后台不经过处理&#xff0c;又把数据返回前端&#xff0c;这就会出问题了。网页解析器会把用户的信息也当成html代码给解析了。 如果用户写的是一些恶意的 js 脚本这是很危险的。专业…

实验三:XSS和SQL注入

实验三&#xff1a;XSS和SQL注入 实验目的&#xff1a; 实验目的&#xff1a;了解什么是XSS&#xff1b;了解XSS攻击实施&#xff0c;理解防御XSS攻击的方法&#xff1b;了解SQL注入的基本原理&#xff1b;掌握PHP脚本访问MySQL数据库的基本方法&#xff1b;掌握程序设计中避…

XSS注入漏洞解决方法(高风险)

漏洞描述 攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web里面的Script代码会被执行&#xff0c;从而达到恶意攻击用户的目的。 漏洞验证 通过在页面中的留言板&#xff0c;提交框&#xff0c;录入信息框等能够提交参数的地方&a…

XSS注入——DOM型XSS

DOM型xss XSS根据恶意脚本的传递方式可以分为3种&#xff0c;分别为反射型、存储型、DOM型&#xff0c;前面两种恶意脚本都会经过服务器端然后返回给客户端&#xff0c;相对DOM型来说比较好检测与防御&#xff0c;而DOM型不用将恶意脚本传输到服务器在返回客户端&#xff0c;这…

XSS注入之xss-labs

目录 &#xff08;一&#xff09;配置环境 &#xff08;1&#xff09;phpstudy 的安装 &#xff08;2&#xff09;xss-labs 的安装 &#xff08;二&#xff09;XSS漏洞的一些基础知识 &#xff08;1&#xff09;XSS漏洞的定义 &#xff08;2&#xff09;XSS漏洞的原理 &…

sql注入和xss注入有什么不一样呢?

在OWASP Top10中注入排在第一位&#xff0c;xss排在第七位&#xff0c;那么问题问题就来了&#xff0c;sql注入和xss注入都是注入&#xff0c;为什么要单独把xss单独拿出来排个名呢&#xff1f;他俩到底有啥区别&#xff0c;各自的特点是啥&#xff1f;本文不对它俩做详细的讲解…

xss漏洞攻防

XSS基本概念和原理说明 基本概念 XSS又叫CSS (Cross Site Script) &#xff0c;跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web里面的html代码会被执行&#xff0c;从而达到恶意的特殊目的。XSS属于被动…

XSS注入——反射性XSS

xss注入的攻击步骤&#xff1a; 1.查找可能存在的注入点&#xff08;搜索框&#xff0c;留言板&#xff0c;注册&#xff09; 2.观察输出显示位置&#xff1a; html&#xff1a; 尖括号外部&#xff0c; 尖括号内部: 引号内部》闭合&#xff0…

XSS注入的原理与实现

一、JavaScript的常用脚本 1.window.location.href 用来跳转页面 eg:<script>window.location.hrefwww.jd.com</script> 2.document.cookie 获取客户端的cookie值 3.script 可以通过“src”属性引入JavaScript文件 二、什么是同源策略 同源策略在web应用的安…

XSS注入(跨站脚本攻击)

今天学习一下xss注入 1.XSS是什么 XSS注入漏洞又称为"跨站脚本攻击(Cross Site Scripting)"&#xff0c;为了不和层叠样式表(Cascading Style Sheets,CSS)混淆&#xff0c;所以将跨站脚本攻击缩写为XSS。xss本质上是黑客通过对网页的HTML注入&#xff0c;篡改了原本…

xss注入教程与总结

xss注入个人总结 1 " < >可以用URL编码 %22 %3c %3e HTML 编码 &quot; < > 代替 2 如果过滤 可以用%2522 %26colon; 这种代替尝试 二次转码 3 如果输入框有历史记录 &#xff0c;个人简介注意使用 发现很多网站对输入框有过滤缺但没有过滤历史记录这些…

XSS注入(1)-两个简单测试理解反射型xss注入和存储型xss注入

XSS注入(1)-两个例子理解反射型xss注入和存储型xss注入 XSS全称 Cross Site Script&#xff0c;为使与css语言重名&#xff0c;所以我们将其称为xss跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意脚本代码&#xff0c;而程序对于用户输入内容未过滤&#xff0c;当用户浏…

xss漏洞注入

定义&#xff1a; XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript&#xff0c;但实际上也可以包括Java、 VBScript、ActiveX、 Fla…

XSS-Lab(XSS注入笔记1-16)

前言 本篇博客主要是记录笔者完成XSS-Lab步骤以及分析 题目链接&#xff1a;https://buuoj.cn/challenges#XSS-Lab Github仓库&#xff1a;https://github.com/rebo-rn/xss-lab 出题人的题解&#xff1a;https://github.com/Re13orn/xss-lab/blob/master/XSSwrite%20up.doc…

XSS注入原理以及一些绕过姿势

介绍 XSS——跨站脚本攻击。通过这个攻击手段&#xff0c;攻击者可以将恶意的 JavaScript 代码插入存在 XSS 漏洞的 Web 页面中&#xff0c;当用户浏览带有恶意代码的页面时&#xff0c;这些恶意代码会被触发&#xff0c;从而达到攻击的目的。可以说&#xff0c;XSS 是针对用户…

XSS注入基础入门篇

XSS注入基础入门篇 1.XSS基础概念2. XSS的分类以及示例2.1 反射型XSS2.1.1 示例1&#xff1a;dvwa low 级别的反射型XSS2.1.2 攻击流程 2.2 DOM型XSS2.2.1 示例2&#xff1a;DOM型XSS注入1.环境部署2.基础版本3.进阶绕过 2.3 存储型XSS2.3.1 示例1&#xff1a;dvwa low示例2.3.…

XSS跨站脚本注入详解

一、什么是XSS跨站脚本注入(XSS注入)? XSS(Cross-site scripting)注入是一种Web安全漏洞,它允许攻击者在受害者的浏览器上执行恶意脚本,从而导致攻击者能够窃取受害者的敏感信息或者利用受害者的身份在应用程序上执行未经授权的操作。 攻击者通常会在受害者访问的Web页…