display:none和visibility:hidden都能把网页上某个元素隐藏起来,但是两者有区别:
一、display:none
1、不为被隐藏的对象保留其物理空间。html对象在页面上彻底消失(display:none会让元素完全从渲染树中消失,渲染的时候不占据任何空间)。
2、是非继承属性,子孙节点消失由于元素从渲染树消失造成的,通过修改子孙节点,属性无法显示。
3、修改常规文档流元素的display通常会造成文档的重排(reflow)重绘(repaint)。
二、visibility:hidden
1、为隐藏的对象保留其物理空间,html对象仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在(visibility:hidden不会让元素从渲染树中消失,渲染树元素继续占据空间,只是内容不可见)。
2、是继承,子孙节点消失由于继承了hidden,通过visibility:visible可以让子孙节点显示。
3、修改visibility属性只会造成文档的重绘(repaint)。
- 标签只是单纯的样式标签,表现斜体的样式,但是语义上与普通文本无异;标签在样式上表示为斜体,同时在语义上也表示为斜体。标签可以被设备识别,而标签不能被识别。
- 不是所有标签都需要结束标签,例如-;doctype类型会影响;HTML标签对大小写不敏感,为了规范,推荐小写。
浏览器渲染流程
1.解析HTML并构建DOM树
2.构建render树
3.布局render树
4.绘制render树
link和@import区别
link除了引用样式文件,还可以引用图片等资源文件,而import只引用样式文件
<link rel="icon" sizes="any" mask href="//www.baidu.com/img/baidu.svg">
兼容性不同,link不存在兼容性的问题,import在IE5以上支持,是css2.1新增的
在样式表文件可以使用import导入其它的样式表文件,而link不可以
link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
link支持使用Javascript控制DOM去改变样式;而@import不支持。