HTML/CSS/浏览器/HTTP面试题

1.前端需要注意哪些SEO?

  1. 合理的 titledescriptionkeywords :搜索对着三项的权重逐个减小,
    a. title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面 title 要有所不同;
    b. description 把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面 description 有所不同;
    c. keywords 列举出重要关键词即可
  2. 语义化的 HTML 代码符合W3C规范:语义化代码让搜索引擎容易理解网页
  3. 重要内容 HTML 代码放在最前:搜索引擎抓取 HTML 顺序是从上到下,有的搜索引擎对 抓取长度有限制,保证重要内容一定会被抓取
  4. 重要内容不要用 js 输出:爬虫不会执行js获取内容
  5. 少用 iframe :搜索引擎不会抓取 iframe 中的内容
  6. 非装饰性图片必须加 alt
  7. 提高网站速度:网站速度是搜索引擎排序的一个重要指标

2.什么是盒模型?

  • 之所以叫盒模型,是因为网页上的元素基本都是一些方方正正的很像一个个盒子,因此形象的称为盒模型。
  • 盒模型分为两种:分别是W3C标准盒模型和IE盒模型。它们都包括margin(外边距)border(边框)padding(内边距)content(内容这五个部分。不同之处在于IE盒模型中content部分包括了border和padding。也就是说IE盒模型的高度=2margin+content.height,而W3C标准盒模型的高度=2margin+2border+2padding+content.height。宽度也是一样的

3.行内元素和块级元素的具体区别是什么?inline-block是什么?

  • 区别

    1. 行内元素会在一条直线上排列默认宽度只与内容有关),都是同一行的,水平方向排列。

    2. 块级元素各占据一行默认宽度是它本身父容器的100%(和父元素的宽度一致),与内容无关),垂直方向排列。块级元素从新行开始,结束接着一个断行。

    3. 块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素,只能包含文本或者其它行内元素。

    4. 行内元素与块级元素属性的不同,主要是盒模型属性上:行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效

  • 行内元素和块级元素转换

     display:block; (字面意思表现形式设为块级元素)
    
    display:inline; (字面意思表现形式设为行内元素)
    
  • inline-block
    inline-block 的元素(如input、img)既具有 block 元素可以设置宽高的特性同时又具有 inline 元素默认不换行的特性。当然不仅仅是这些特性,比如 inline-block 元素也可以设置 vertical-align(因为这个垂直对齐属性只对设置了inline-block的元素有效) 属性。
    HTML 中的换行符、空格符、制表符等合并为空白符,字体大小不为 0 的情况下,空白符自然占据一定的宽度,使用inline-block 会产生元素间的空隙。

  • 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

行内元素:a、b、span、img、input、strong、select、label、em、button、textarea

块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote

空元素:即系没有内容的HTML元素,例如:br、meta、hr、link、input、img

4.img 的 title和 alt有什么区别

  • title通常当鼠标滑动到元素上的时候显示
  • alt<img> 的特有属性,是图片内容的等价描述,用于图片无法加载时显示、读屏器阅读图片。可提高图片高可访问性,除了纯装饰图片外都必须设置有意义的值,搜索引擎会重点分析。

5.如何让Chrome浏览器显示小于12px的文字

  • 用transform:scale()这个属性进行缩放
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Document</title>
		<style>
			p {
     
     
				font-size: 10px;
				transform: scale(0.8);
				display: block;
			}
		</style>
	</head>
	<body>
		<p>显示小于12px的文字,这是10px的字</p>
	</body>
</html>

6、列举几个前端性能方面的优化

  • content方面
    1. 减少HTTP请求:合并文件、css精灵、inline Image
    2. 减少DNS查询:DNS缓存、将资源分布到恰当数量的主机名
    3. 减少DOM元素数量
  • Server方面
    1. 使用CDN
    2. 配置ETag
    3. 对组件使用Gzip压缩
  • Cookie方面
    1. 减小cookie大小
  • css方面
    1. 将样式表放到页面顶部
  • Javascript方面
    1. 将脚本放到页面底部
    2. 将javascipt和css从外部引入
    3. 压缩javascript和css
    4. 删除不需要的脚本
    5. 减少DOM访问
  • 图片方面
    1. 优化图片:根据实际颜色需要选择色深、压缩
    2. 优化css精灵
    3. 不要在HTML中拉伸图片

7.语义化的理解

  • 用正确的标签做正确的事情!
  • html语义化就是让页面的内容结构化,便于浏览器、搜索引擎解析
  • 在没有样式css情况下也以一种文档格式显示,并且是容易阅读的
  • 在搜索引擎的爬虫依赖于标记确定上下文和各个关键字的权重,利于SEO
  • 使阅读源码的人对网站更容易将网站分块,便于阅读维护理解

8、HTML5的离线储存怎么使用,工作原理能不能解释一下?

  • 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件
  • 原理: HTML5 的离线存储是基于一个新建的 .appcache 文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像 cookie 一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示
  • 如何使用
    页面头部像下面一样加入一个 manifest 的属性;
    在 cache.manifest 文件的编写离线存储的资源
    在离线状态时,操作 window.applicationCache 进行需求实现
CACHE MANIFEST
#v0.11
CACHE:
js/app.js
css/style.css
NETWORK:
resourse/logo.png
FALLBACK:
/ /offline.html

9、浏览器是怎么对 HTML5的离线储存资源进行管理和加载的呢

  • 在线的情况下,浏览器发现 html 头部有 manifest 属性,它会请求 manifest 文件,如果是第一次访问 app ,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过 app 并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的 manifest 文件与旧的 manifes t文件,如果文件没有发生改变就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储
  • 离线的情况下,浏览器就直接使用离线存储的资源。

猜你喜欢

转载自blog.csdn.net/weixin_44757417/article/details/108794755