行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
- 行内元素有:
span
a
b
i
img
input
select
strong
- 块级元素有:
div
p
h1
-h6
ul
table
form
ul
ol
li
dl
dt
dd
… - 空元素(没有内容):
br
hr
img
input
link
meta
CSS Hack
一般来说是针对不同的浏览器写不同的CSS,就是 CSS Hack。
CSS Hack常见的有三种形式:
属性Hack、选择符Hack、条件注释Hack, Hack主要针对IE浏览器
- 条件Hack
<!--[if IE]>
<p>你在非IE中将看不到我的身影</p>
<![endif]-->
<!--[if IE]>
<style>
.test{color:red;}
</style>
<![endif]-->
<!--[if lt IE 9]>
<script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下被当做注释视而不见。可以通过IE条件注释载入不同的CSS、JS、HTML和服务器代码等。
- 属性Hack
.test{ color:#090\09; /* For IE8+、FF */
*color:#f00; / * For IE7 * /
_color:#ff0; /* For IE6 */ }
属性级Hack:
比如IE6能识别下划线“”和星号“”,
IE7能识别星号“”,但不能识别下划线” ”,而firefox两个都不能认识。
background-color:red9; 9所有的ie浏览器可识别;
background-color:yellow0; 0 是留给ie8的
- 选择符Hack
* html .test{color:#090;} /* For IE6 and earlier */
*+html .test{color:#ff0;} /* For IE7 */
.test{color:#f00;} /* For IE8+ and not IE */
比如IE6能识别
*html .class{}
,IE7能识别*+html .class{}
浏览器优先级别:
-
FF<IE7<IE6,CSS hack
-
书写顺序一般为FF(FireFox火狐) IE7 IE6
以: " #demo {width:100px;} "为例:
#demo {width:100px;} /*被FIREFOX,IE6,IE7执行.*/
* html #demo {width:120px;} /*会被IE6执行,之前的定义会被后来的覆盖,所以#demo的宽度在IE6就为120px; */
*+html #demo {width:130px;} /*会被IE7执行*/
所以最后,#demo的宽度在三个浏览器的解释为: FIREFOX:100px; ie6:120px; ie7:130px;
IE8+ 最新属性css hack:
"9" 例:"border:1px 9;"这里的"9"可以区别所有IE和FireFox.(只针对IE9 Hack)
"0" IE8识别,IE6、IE7不能.
"*" IE6、IE7可以识别.IE8、FireFox不能.
"_" IE6可以识别"_",IE7、IE8、FireFox不能.
src与href的区别
href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。
src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;
在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。
link与@import区别
<head>
<!-- link是标签,引入外部样式表 -->
<link rel="stylesheet" href="./a.css">
<style>
/* @import 在css环境中 导入外部css */
@import url('./b.css');
.box{
width: 100px;
height: 100px;
background: green;
}
</style>
</head>
区别:
- link属于html标签。@import在css中使用表示导入外部样式表;
- 页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
- import只在IE5以上才能识别,而link是HTML标签,无兼容问题;
- link方式的样式的权重 高于@import的权重;
- link 支持使用javascript改变样式 (document.styleSheets),后者不可
css3/H5新特性
详细内容可以到这里来看
H5新特性
- ⾸先 html5 为了更好的实践 web 语义化,增加了 header,footer,nav,aside,section 等语义化标签,
- 在表单⽅⾯,为了增强表单,为 input 增加了 color,email,data ,range 等类型,
- 在存储⽅⾯,提供了 sessionStorage,localStorage,和离线存储,通过这些存储⽅式
⽅便数据在客户端的存储和获取, - 在多媒体⽅⾯规定了⾳频和视频元素 audio 和 vedio,另外还有地理定位,canvas 画
布,拖放,多线程编程的 web worker 和 websocket协议
css3新增特性
- CSS3 边框如 border-radius,box-shadow 等;
- CSS3 背景如 background-size,background-origin 等;
- CSS3 2D,3D 转换如 transform 等;
- CSS3 动画如 animation 等