1. DIV+CSS布局的好处

  1. 代码精简,且结构与样式分离,易于维护
  2. 代码量减少了,减少了大量的带宽,页面加载的也更快,提升了用户的体验
  3. 对SEO搜索引擎更加友好,且H5又新增了许多语义化标签更是如此
  4. 允许更多炫酷的页面效果,丰富了页面
  5. 符合W3C标准,保证网站不会因为网络应用的升级而被淘汰

缺点:  不同浏览器对web标准默认值不同,所以更容易出现对浏览器的兼容性问题。

2. 如何解决a标点击后hover事件失效的问题?

改变a标签css属性的排列顺序,只需要记住LoVe HAte原则就可以了:

link→visited→hover→active

比如下面错误的代码顺序:

a:hover{color: green;text-decoration: none;
}
a:visited{ /* visited在hover后面,这样的话hover事件就失效了 */color: red;text-decoration: none;
}

正确的做法是将两个事件的位置调整一下。

注意⚠️各个阶段的含义:

a:link:未访问时的样式,一般省略成a

a:visited:已经访问后的样式

a:hover:鼠标移上去时的样式

a:active:鼠标按下时的样式

3. 点击一个input依次触发的事件

const text = document.getElementById('text');
text.onclick = function (e) {console.log('onclick')
}
text.onfocus = function (e) {console.log('onfocus')
}
text.onmousedown = function (e) {console.log('onmousedown')
}
text.onmouseenter = function (e) {console.log('onmouseenter')
}
复制代码

答案:

'onmouseenter'
'onmousedown'
'onfocus'
'onclick'

4. null和undefined的区别

null 表示一个“无”的对象,也就是该出不应该有值;而 undefined 表示未定义

在转换为数字时结果不同,Number(null)0,而 undefined为 NaN

使用场景上:

null

  • 作为函数的参数,表示该函数的参数不是对象
  • 作为对象原型链的终点

undefined:

  • 变量被声明了,但没有赋值时,就等于undefined
  • 调用函数时,应该提供的参数没有提供,该参数等于undefined
  • 对象没有赋值属性,该属性的值为undefined
  • 函数没有返回值时,默认返回undefined

5、盒模型

由于浏览器的差异性,盒模型分为 标准盒模型(W3C 的规范) 和 IE盒模型(老的 IE 浏览器在怪异模式下使用自己的非标准模型

它们的呈现方式和对盒子大小的计算略有不同。

在标准盒模型下通过设置 box-sizing: border-box; 可转换为 IE 盒模型

 01. 标准盒模型

  • 元素的 width 和 height 只包含content,不包含 border 和 padding 值;
  • 盒子的大小由元素的宽高、边框和内边距决定
盒子的宽 = width + border-width * 2 + padding-left + padding-right
盒子的高 = height + border-width * 2 + padding-top + padding-bottom

02. IE盒模型

  • 元素的 width 和 height 不仅包含content,还包含 border 和 padding
  • 盒子的大小取决于元素的宽和高,修改边框和内边距的值不能改变盒子的大小
盒子的宽 = width盒子的高 = height

浏览器兼容性及其他

  • 只要设置了合适的 DTD,大多数浏览器会按照标准盒模型来显示,但是 IE5.X 和 6 在怪异模式下会根据 IE 盒子模型进行显示。

  • 标准盒模型下元素的 box-sizing 属性(IE8+)默认值为 content-box,将它设置成 border-box 可转换为 IE 盒模型。在实际应用场景中,若想控制元素总宽高保持固定,这个设置很有用。

  • 元素的宽(width)、高(height)、边框(border)、内边距(padding)、外边距(margin)都是盒子模型的重要组成部分,但是盒子模型的大小只与元素的宽高、边框、内间距有关,外边距只影响盒子所占外围空间的大小。

6、清除浮动的方式

清除浮动本质上是要清除浮动元素带来的一些影响(例如高度塌陷)

例如:子元素设置了float后,脱离父元素,导致父元素无法撑开?(也就是子元素的高度没有过渡到父元素)

常用以下三种方式解决:

 01、额外标签法,添加一个空的div

在最后一个标签后面,新加一个<div></div>,给其设置clear:both(常用)

02、父元素增加overflow属性(这个用的比较少,因为正常功能会受到影响)

03、父元素使用after伪类元素清除浮动

添加在css上,html上没加内容(推荐)

7、水平居中、垂直居中的几种方法

水平居中的方法:

若是针对inline, 内联块inline-block, 内联表inline-table, inline-flex元素及img,span,button等元素

父元素设置 text-align:center;

绝对定位;弹性布局;grid网格布局

不定宽块状元素

设置 margin:auto;

绝对定位;弹性布局;grid网格布局;table表布局

grid网格布局:

​​阮一峰 CSS Grid 网格布局教程:

http://www.ruanyifeng.com/blog/2019/03/grid-layout-tutorial.html

.farther {display: grid;justify-content: center;}

table表布局: 

.father {display: table;
}.children {display: table-cell;text-align: center;
}

垂直居中的方法:     

若为单行内联(inline-)元素:

通过设置内联元素的高度(height)和行高(line-height)相等,从而使元素垂直居中;

绝对定位;弹性布局;table表布局;grid网格布局

不定宽块状元素:

绝对定位;弹性布局;table表布局;grid网格布局

grid网格布局:

.farther {display: grid;justify-content: center;align-content: center;}

table表布局:

.father {display: table;
}.children {display: table-cell;vertical-align: middle;text-align: center;
}

8、CSS3动画(帧动画及原理)

使用动画(js实现动画,css3实现动画)时两者的区别?

  • js实现的是帧动画、css实现的是补间动画(transition animation
  • 帧动画:使用定时器,每隔一段时间,更改当前的元素
  • 补间动画:过渡(加过渡只要状态发生改变产生动画)动画(多个节点来控制动画)性能会更好
  • 在支持css3的浏览器尽可能的使用css3动画(适用于移动端开发)

9、 如何使用媒体查询

@media 媒体类型 and (媒体特性){你的样式}

@media screen and (max-width:480px){.ads {display:none;}
}

使用关键词"and"将多个媒体特性结合在一起

@media screen and (min-width:600px) and (max-width:900px){body {background-color:#f5f5f5;}
}

在智能设备上,例如 iPhone、iPad 等,还可以根据屏幕设备的尺寸来设置相应的样式(或者调用相应的样式文件)。同样的,对于屏幕设备同样可以使用“min/max”对应参数,如“min-device-width”或者“max-device-width”。

<link rel="stylesheet" media="screen and (max-device-width:480px)" href="iphone.css" />

使用关键词 “not” 是用来排除某种制定的媒体类型,也就是用来排除符合表达式的设备。换句话说,not 关键词表示对后面的表达式执行取反操作,如:样式代码将被使用在除打印设备和设备宽度小于1200px下所有设备中。

@media not print and (max-width: 1200px){样式代码}

only用来指定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器。

<link rel="stylesheet" media="only screen and (max-device-width:240px)" href="android240.css" />

10、 页面导入样式时,使用link和@import有什么区别?

1) 从属关系的区别:link属于XHTML标签,而@import是CSS提供的语法规则;link除了加载CSS,还可以定义RSS等,而@import就只能加载CSS

2) 加载顺序的区别:页面加载时,link会同时被加载,而@import引用的CSS会等页面被加载完之后再加载,所以会出现一开始没有css样式,闪烁一下出现样式后的页面(网速慢的情况下)

3)兼容性的区别:link是XHTML标签,无兼容问题;而@import是CSS2.1提供的,只有IE5以上才能支持

4)DOM可控性区别:link支持使用Javascript控制DOM去改变样式,由于DOM方法是基于文档的,所以无法使用@import方式改变样式。

具体可参考:https://xiangshuo.blog.csdn.net/article/details/52885924

11、简述下html5的离线储存原理,同时说明如何使用?

原理:

HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示

如何使用:

① 页面头部像下面一样加入一个manifest的属性。

<!DOCTYPE HTML>
<html manifest = "cache.manifest">...
</html>

在cache.manifest文件的编写离线存储的资源。

CACHE MANIFEST#v0.1CACHE:js/index.jscss/index.cssNETWORK:images/logo.pngFALLBACK:*.html /404.html /* / /404.html 或 /html/ /404.html 也可*/

以#号开头的是注释,一般会在第二行写个版本号,用来在缓存的文件更新时,更新manifest以实现浏览器重新下载新的文件,可以是版本号,时间戳或md5码等。

离线存储的manifest一般由三个部分组成:

① CACHE:必选,表示需要离线存储的资源列表,由于包含manifest文件的页面将被自动离线存储,所以不需要把页面自身也列出来。

② NETWORK:可选,可以使用通配符,表示在它下面列出来的资源只有在在线的情况下才能访问,他们不会被离线存储,所以在离线情况下无法使用这些资源。不过,如果在CACHE和NETWORK中有一个相同的资源,那么这个资源还是会被离线存储,也就是说CACHE的优先级更高

③ FALLBACK:可选,表示如果访问第一个资源失败,那么就使用第二个资源来替换他,如/html/ /404.html表示用 “404.html” 替代 /html/ 目录中的所有文件,/ /404.html表示用 “404.html” 替代当前目录中的所有文件,*.html /404.html表示用 “404.html” 替代 所有html文件。

知识总结:html+css相关推荐

  1. 未掌握的基础知识之HTML+CSS

    HTML基础知识整理 HTML canvas HTML5相关的框架或类库 DHTML 的动态样式的作用 超链接样式顺序 HTML5新增的表单元素 HTML5中新增的属性 块级元素 行内元素 常见的块级 ...

  2. 前端性能优化知识,包括css和js

    作者:野次 链接:http://www.zhihu.com/question/33032042/answer/95948831 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  3. html css js知识整理,Html+Css+Js实用知识汇总(持续更新中...)

    Html篇 基本概念: html:超文本标记语言(Hyper Text Markup Language) html5:下一代的html xhtml:更严谨更纯净的html 表头 网站标题 //页面编码 ...

  4. 前端知识大全之CSS(含有JS)

    目录 一.概念讲解 学习CSS之前必学的HTML (超链接) 二.正文代码 1.行内样式 2.内部样式(选择器) 3.外部样式 4.样式的优先级 5.简单选择器之定义单个标签(id) 6.简单选择器之 ...

  5. 「CSS深度指北」前端知识梳理之CSS篇(中秋国庆特别篇)

    认识浏览器 组成部分 可能一说组成部分,小伙伴们就直接懵了,开门见山地说,别怕,还有更懵的在后面呢! 组成分为两大部分: shell 和 内核(其中内核是核心部分,它代表着浏览器所使用的技术手段,而s ...

  6. html和css知识,html和 css基础知识

    1.字体格式:font-size:12px        设置字体大小,默认是12px. font-size:1.5em     设置字体是1.5倍父字体的大小,就近原则.比如说,父字体是12px,那 ...

  7. 关于CSS的一些语法知识

    CSS语法 简介 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小.颜色.字体加粗等. 如 ...

  8. CSS 基本知识梳理-续

    CSS 基本知识 1.CSS 简介 CSS 指层叠样式表 (Cascading Style Sheets),是一种用来表现 HTML 文档样式的语言,样式定义如何显示 HTML 元素,是能够真正做到网 ...

  9. HTML+CSS基础知识3

    HTML+CSS基础知识3 15.css选择器 16.css的继承 17.css优先级 18.css盒子模型 19.css标签分类 20.显示框类型 21.标签的嵌套规范 22.溢出隐藏 23.透明度 ...

  10. html css xml,XML HTML CSS理论知识复习

    1:XML理论知识 1.1 :  什么是xml? .  首先我们了解它的全称:Extensible Markup Language  直译过来就是它, 可扩展标记语言. .  XML 可扩展标记语言的 ...

最新文章

  1. jupyter写python的时候换行总是换到下一行的中间
  2. 一起学mini2440裸机开发(十)--mini2440外部中断实验
  3. #Node.js的fs导入遇到的问题和解决方案
  4. 三层登录VB.NET实现
  5. 头回遇见网上找不到的问题,“缺少实例ID,实例ID是必需的”
  6. 前端学习(1859)vue之电商管理系统电商系统之梳理项目结构
  7. 面试题:Fibonacci数列
  8. ubuntu14.04-64位机配置android开发环境,ADT,sdk,eclipsea
  9. SP913 QTREE2 - Query on a tree II
  10. 查询jdk支持的 tsl协议版本
  11. tcpdf中增加微软雅黑的正确方式
  12. Excel文件导入mysql数据库
  13. SQL:postgresql中实现查询某字段总数量和该字段不同值各自的数量
  14. 如果数组的值都一样java_java – 将数组中的相同值合并在一起
  15. java面向对象是什么意思_java什么是面向对象
  16. php访问80端口强制跳转443,nginx 80端口重定向到443端口
  17. 浏览器安全检查5秒解决方案
  18. 在命令窗中查询当前电脑IP
  19. 注塑机计算机控制器,注塑机微机控制器,Microprocessor-based Controller for PIM,音标,读音,翻译,英文例句,英语词典...
  20. Android仿qq邮箱账号邮件账号输入框交互

热门文章

  1. IT年轻人回乡创业请谨慎
  2. 第3章 PIN码设置、加密、存储
  3. NLP大火的prompt能用到其他领域吗?清华孙茂松组的 CPT 了解一下
  4. IntelFPGA_DDR_IP
  5. ZUUL 文件上传限制
  6. SpringCloud(1):SpringCloud介绍
  7. 锁分实锤!B站三体动画评分只有…好文!拆解追溯GPT-3.5各项能力起源;餐饮店后厨AI解决方案PreciTaste… | ShowMeAI资讯日报
  8. python显示程序运行进度_Python中如何显示程序进度
  9. zTree如何实现模糊查找实战
  10. 运动员最佳匹配问题【回溯算法】