CSS3是CSS的子集,CSS3是最新的标准,提供了很多好用的新属性,提升了网页的表现性。
CSS3提供了更好用的选择器
最新的CSS3中,对伪类、伪元素选择器做了严格的规范。有了伪类后,不用在div标签里面添加额外的元素完成一些DOM操作,可以通过::before,::after完成,代码简洁明了。对于鼠标的操作,也可以通过::hover等类似的操作完成。非常高效。还有::first–child等类似的选择器去操作子元素。
CSS3使动画效果越来越方便
css3里面通过animation来完成动画,设置@keyframes即可,一些轻量级的动画不必再通过js完成。
CSS3完成圆角、阴影美化更方便
以前的css完成类似的功能只能通过图片做背景,现在只需要border-radius、boxshadow即可。非常高效简洁。
CSS3提供了全新的盒模型
这个特性十分有用。原来的盒模型width=content.+border+padding。你规定了width.每次都要自己计算,现在有了boder-box不用这么麻烦了。
CSS3的flex布局是最强大的
IE已死,不需要再考虑它的兼容性!!!用flex布局,节省很多时间,节省的时间可以学很多东西,而不是浪费时间去适应落后的ie!!!
还有很多好用的css3特性,这个版本提供了巨大的生产力!!!很感谢它,期待下一个grid布局~
以上是偶的看法~
一、无继承性的属性
1、display:规定元素应该生成的框的类型
2、文本属性:
vertical-align:垂直文本对齐
text-decoration:规定添加到文本的装饰
text-shadow:文本阴影效果
white-space:空白符的处理
unicode-bidi:设置文本的方向
3、盒子模型的属性:width、height、margin 、margin-top、margin-right、margin-bottom、margin-left、border、border-style、border-top-style、border-right-style、border-bottom-style、border-left-style、border-width、border-top-width、border-right-right、border-bottom-width、border-left-width、border-color、border-top-color、border-right-color、border-bottom-color、border-left-color、border-top、border-right、border-bottom、border-left、padding、padding-top、padding-right、padding-bottom、padding-left
4、背景属性:background、background-color、background-image、background-repeat、background-position、background-attachment
5、定位属性:float、clear、position、top、right、bottom、left、min-width、min-height、max-width、max-height、overflow、clip、z-index
6、生成内容属性:content、counter-reset、counter-increment
7、轮廓样式属性:outline-style、outline-width、outline-color、outline
8、页面样式属性:size、page-break-before、page-break-after
9、声音样式属性:pause-before、pause-after、pause、cue-before、cue-after、cue、play-during
二、有继承性的属性
1、字体系列属性
font:组合字体
font-family:规定元素的字体系列
font-weight:设置字体的粗细
font-size:设置字体的尺寸
font-style:定义字体的风格
font-variant:设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。
font-stretch:对当前的 font-family 进行伸缩变形。所有主流浏览器都不支持。
font-size-adjust:为某个元素规定一个 aspect 值,这样就可以保持首选字体的 x-height。
2、文本系列属性
text-indent:文本缩进
text-align:文本水平对齐
line-height:行高
word-spacing:增加或减少单词间的空白(即字间隔)
letter-spacing:增加或减少字符间的空白(字符间距)
text-transform:控制文本大小写
direction:规定文本的书写方向
color:文本颜色
3、元素可见性:visibility
4、表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、table-layout
5、列表布局属性:list-style-type、list-style-image、list-style-position、list-style
6、生成内容属性:quotes
7、光标属性:cursor
8、页面样式属性:page、page-break-inside、windows、orphans
9、声音样式属性:speak、speak-punctuation、speak-numeral、speak-header、speech-rate、volume、voice-family、pitch、pitch-range、stress、richness、、azimuth、elevation
三、所有元素可以继承的属性
1、元素可见性:visibility
2、光标属性:cursor
四、内联元素可以继承的属性
1、字体系列属性
2、除text-indent、text-align之外的文本系列属性
五、块级元素可以继承的属性
1、text-indent、text-align
首先,在做项目前,大家一定要确认是否需要兼容IE8~IE9,从刚开始就注意兼容问题,做起来就会很舒服,如果项目完成后做兼容,简直就是噩梦。下面是偶这几天做IE8兼容遇到的一些问题。
1、css样式方面css样式,尽量少用css3的这些伪类选择器,如果使用了,在后期做兼容会很累,如果项目硬要兼容IE8+,那就请你从一开始就避免这些伪类的使用吧。避免了最难解决的伪类问题后,剩下的就是针对IE8 IE9做一些样式上的微调,将会异常轻松。
2、JS方面 2.1、IE8是不支持className选择节点的,所以,最省时省力的方法,大家在选择节点时,可以多使用jquery选择器,说实话,jQuery的兼容性还真的好。当然如果你的父节点不是element,没法用jq的时候,只能自己拓展了;解决IE8一下不支持getElementsByClassName的方法 – CSDN博客 这个博客的方法适合随意指定父节点,实测有效; 2.2、如果你要遍历一个数组,请不要用map forEach,因为这些方法IE8 IE9都不支持,如 果你项目里用到了,修改起来很麻烦,那么就拓展一个map forEach方法吧。 2.
3、如果需要在文本框里添加placeholder,个人建议使用插件,将会有和原生浏览器一样的效果。 推荐jquery.placeholder.js 这个插件 2.
4、现在大部分主流浏览器都支持bind,很不幸,IE8却不支持,如果碰到了bind的兼容问题,那么只能自己写拓展了。 2.
5、IE8 IE9均不支持calssList属性,如果用到了增删class,那么只能自己写拓展。给不支持classList的浏览器(IE9以及以下等)的元素添加classList属性 – 麦兜的博客 – CSDN博客这个博客上有具体的代码,当然你复制下来运行发现会报错,你需要加上这句代码window.HTMLElement = window.HTMLElement || Element;因为IE不识别HTMLElement。 2.
6、如果你不小心用到了某个jq版本的text()方法,那么你要注意,有可能IE8不兼容,最好使用innerHTML 2.
7、IE8并不支持event.target,如果你不小心用了,会报错 找不到 target 属性。这就取决于IE8的机制,event只能是window对象的一个属性,所以大家这样写就能兼容IE8了;var event=window[“event”]; 可以用 event.srcElement获取你想要的节点对象。