1.语义化的理解。
在写HTML页面结构时所用的标签有意义 头部用head 主体用main 底部用foot...
怎么判断页面是否语义化了?
把CSS去掉,如果能够清晰的看出来页面结构,显示内容较为正常
为什么要选择语义化?
- 让HTML结构更加清晰明了
- 方便团队协作,利于开发
- 有利于爬虫和SEO
- 能够让浏览器更好的去解析代码
- 给用户带来良好的体验
2.H5有哪些新特性?
- 语义化的标签
- 新增音频视频
- 画布canvas
- 数据存储localstorage sessionstorage
- 增加了表单控件 email url search...
- 拖拽释放API
3. 页面导入样式时,使用link和@import有什么区别?
加载方式和顺序
link:加载顺序由 HTML 中 标签的顺序决定 页面被加载时,link 会同时被加载
import : 必须写在样式表的最前面 加载顺序受到 CSS 文件中 @import 规则的顺序决定 引用的 CSS 会等到页面被加载完再加载
权重
link 方式的样式的权重高于 @import 权重。
从属关系
link 属于 HTML 标签,而 @import 是 CSS 提供的。
兼容性
link 没有兼容性问题,@import 不兼容 ie5 以下。
4.什么是 DOCTYPE?
声明(即文档类型声明)位于 HTML 文档的最顶部,用于告诉浏览器当前文档所遵循的 HTML 或 XML 版本。这是 HTML 文档的必需部分,它告诉浏览器应该如何解析和渲染网页。它有助于确保网页的正确显示,并避免浏览器进入“怪异模式”- 标准模式:浏览器遵循 HTML 和 CSS 的标准规范进行页面渲染,确保网页按预期显示。
- 怪异模式:浏览器以历史遗留方式渲染网页,表现上可能会与标准模式有所不同,通常会存在样式和布局上的差异
5.meta标签
标签是一种非常重要的HTML元素,它用于向浏览器提供有关文档的元数据信息
常见的Meta属性:
1、指定文档字符集
<meta charset="UTF-8">
2、设置视口宽度与缩放比例
<meta name="viewport" content="width=device-width, initial-scale=1">
3、定义页面描述
<meta name="description" content="这里是页面的描述,应该简洁明了地概括页面内容。">
4、定义页面关键词
<meta name="keywords" content="关键字1,关键字2,关键字3">
5、定义作者和其他元数据
<meta name="author" content="John Doe">
<meta name="generator" content="MyCMS 1.0">
5. 行内 块级元素 空(void)元素
行内元素
通常是文本内容的一部分,它们不会影响布局,只占据内容所在的行宽度。例如:
<span>、<a>、<img>、<b>、<strong>、<em>
块级元素
占据一行,形成独立的块,可以设置宽高,影响布局。例如:
<div>、<p>、<h1>~<h6>、<ul>、<ol>、<li>、<table>、<form> 等
空(void)元素
也称为无内容元素,它们不包含任何内容,但可以有属性。它们通常用于定义结构,不会影响布局。例子有:
<hr>(水平线)、<br>(换行)、<img>(图片,当src为空时)、<input type="hidden"> 等
6. 怎么解决2个行内块元素中间的空白
导致原因:元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处理,根据white-space的处理方式(默认是normal,合并多余空白),原来HTML代码中的回车换行被转成一个空白符,所以元素之间就出现了空隙。
方案一:手动取消空格和换行(不推荐 )
1、部分编译器可能会代码整理的时候会强制换行 2、代码比较臃肿,美观度不行,一点不优雅
方块二:父元素设置font-size:0px(推荐)
7. title与h1的区别、b与strong的区别、i与em的区别?
title与h1的区别:
定义:
title:概括了网站信息,可以告诉搜索引擎或者用户关于这个网站的内容主题是什么
h1:文章主题内容,告诉蜘蛛我们的网站内容最主要是什么
区别:
title他是显示在网页标题上、h1是显示在网页内容上
title比h1更加的重要 (title > h1 ) ==》对于seo的了解
场景:
网站的logo都是用h1标签包裹的
b与strong的区别:
定义:
b:标签用于为文本设置粗体样式,但它只是简单地表示文本应该呈现为粗体,并不带有语义强调的意义。
strong:标签用于表示文本的强调语义,默认会呈现为粗体,同时也向屏幕阅读器和搜索引擎表明这段文字的重要性。
区别:
b标签只有加粗的样式,没有实际含义。
strong表示标签内字符比较重要,用以强调的。
题外话:为了符合css3的规范,b尽量少用,改用strong就行了。
i与em的区别:
定义:
i:标签用于表示文本的斜体样式,但它只是简单地表示文本应该呈现为斜体,并不带有语义强调的意义。
em:标签用于表示文本的强调语义,通常会呈现为斜体,同时也向屏幕阅读器和搜索引擎表明这段文字的强调重要性。
区别:
i只是一个倾斜标签,没有实际含义。
em表示标签内字符重要,用以强调的。
场景:
i更多的用在字体图标,em术语上(医药,生物)。
8. img标签的title和alt有什么区别?
区别一:表现形式不同
- title:鼠标移入到图片展示文字值
- alt:图片无法显示时展示文字值
区别二:SEO层面 ( alt > title )
在seo的层面上,蜘蛛抓取不到图片的内容,所以前端在写img标签的时候为了增加seo效果要加入alt属性来描述这张图是什么内容或者关键词。
9. png、jpg、gif 这些图片格式解释一下,分别什么时候用?
- png:png格式支持无损压缩 适合保存高质量细节和透明背景的图像
- jpg:jpg格式支持有损压缩 适合保存照片和真实场景图像
- gif:gif格式支持无损压缩和动画功能,能够保存多帧图像并以动画形式显示 适合保存简单的动画和图标
- webp:Google 开发的图像格式,支持有损压缩和无损压缩,通常比 PNG 和 JPG 文件大小更小,同时保持较高的图像质量。它还支持动画和透明度
10. iframe的优点和缺点?
优点:
- 嵌入外部内容:iframe允许你在一个网页中嵌入来自不同源或服务器的内容,这有助于创建丰富多彩的页面。
- 独立性: 内嵌的内容在 iframe 中运行,与主页面相互隔离,这意味着它不会受到主页面的影响,保持了独立性。
- 简便性: 使用iframe非常简单,只需提供要嵌入的资源的 URL 或相对路径即可。
缺点:
- 性能问题: 如果滥用iframe,在同一个页面中加载多个iframe可能会导致性能问题,因为每个 iframe 都需要单独加载资源。
- 可访问性问题: 内嵌内容可能导致可访问性问题,因为屏幕阅读器等辅助技术可能无法正确解释和浏览iframe 内的内容。
- 安全性风险: 如果未谨慎处理来自不受信任源的内容,可能会存在安全风险,例如点击劫持(clickjacking)攻击。
防止自己的网站被别人 iframe 嵌套
if (top != self) {
top.location = self.location;
}
//这段代码会检测页面是否被嵌套,如果是,则将页面重定向到自身。
11.解决了哪些移动端的兼容问题?
当设置样式overflow:scroll/auto时,IOS上的滑动会卡顿
-webkit-overflow-scrolling:touch;
在安卓环境下placeholder文字设置行高时会偏上
nput有placeholder属性的时候不要设置行高
移动端字体小于12px时异常显示
应该先把在整体放大一倍,然后再用transform进行缩小
ios下input按钮设置了disabled属性为true显示异常
input[typy=button]{ opcity:1 }
安卓手机下取消语音输入按钮
input::-webkit-input-speech-button{ display:none }
6.IOS下取消input输入框在输入引文首字母默认大写
<input autocapitalize='off' autocorrect='off'/>
禁用IOS和安卓用户选中文字
-webkit-user-select:none
禁止IOS弹出各种窗口
-webkit-touch-callout:none
禁止IOS识别长串数字为电话
添加meta属性 <meta conten='telephone=no' name='format-detection'>