014 HTML+CSS(Class165 - 183)

[A] CSS Hack

                  CSS Hack是用来解决浏览器的兼容性问题,为不同版本的浏览器定制编写不同的CSS效果,使用每个浏览器识别的样式代码,来控制浏览器的显示样式

            Hack分类:

                1. CSS属性前缀法

                        属性前缀法即在CSS样式属性名前加上一些只有特定浏览器才能识别的hack前缀,已达到预期效果。

 

 

                            前缀标识                兼容浏览器

                            _                       IE6及以下版本

                            + 或 、                 IE6、IE7

                            \9                      IE6、IE7、IE8、IE9

                            \0                      IE8、IE9、IE10、IE11

                        【如】 #elem{background-color:red;_background-color:blue;}    

                                在IE6及其以下版本该元素的颜色为蓝色,高版本的为红色。

 

                2. 选择器前缀法

                        选择前缀法是针对一些页面表现不一致或者需要特殊对待的浏览器,

                        在CSS选择器前加上一些只有某些特定浏览器才能识别的前缀进行hack

                            前缀标识                兼容浏览器

                            *html                   IE6;

                            *+html                  IE7;

                            :root                   IE9以上及现代浏览器

 

                        【如】*html #elem{background-color:red;_background-color:blue;} 

                              *+html #elem{background-color:red;_background-color:blue;} 

                              :root #elem{background-color:red;_background-color:blue;} 

 

                3. IE条件注释法

                        条件注释法是IE浏览器专用的Hack方式,微软官方推荐使用的hack方法

                            前缀标识                                兼容浏览器

                            <!--[if IE]>...<!endif-->               IE

                            <!--[if IE 7]>...<!endif-->             IE7

                            <!--[if lte IE7]>...<!endif-->          IE7以下

                            <!--[if ! IE7]>...<!endif-->           非IE7

                        【注】1. 条件注释法添加在body中,将某个元素及其内容包含在 <!--[if IE]>...<!endif--> 之间,

                                  只有当该代码运行在相应的IE浏览器之下时才起作用,别的浏览器中相当于注释掉了。

                               2. IE10及以上版本已经不再支持条件注释法。

 

 

[B] IE低版本bug情况

                  由于旧版本浏览器在设计上的缺陷,导致产生一些bug,所以针对这些问题要做一些兼容处理

                兼容问题:

                    1. 透明度

                            常规写法:opacity:0.5;

                            兼容写法:filter:alpha(opacity =  =50);

                    2. 双边距: 当元素浮动时,低版本的margin实际显示值是设置值的两倍,该问题只存在于IE6中。

                            常规写法:margin-left: 50px;

                            兼容写法:添加属性_dispaly:inline

                    3. 最小高度: IE6版本中,容器的最小高度为19px

                            常规写法:height:3px;

                            兼容写法:添加属性overflow:hidden

                    4. 图片边框:img引入图片时自动含有边框

                            常规写法:无

                            兼容写法:添加属性border: none;

 

 

[C] 渐进增强与优雅降级

    渐进增强:针对低版本浏览器进行构建页面,保证最基本的功能,然后在针对高版本的浏览器进行效果,交互等改进和追加功能达到更好的用户体验

               优雅降级:一开始构建完整的功能,然后再针对低版本的浏览器做兼容。

 

[D] 布局拓展

            页面布局

                1. 登高布局:margin负值,padding等值正值,可实现左右两个浮动元素相互撑开

                2. 三列布局,左右固定,中间自适应

                        a. BFC方式

                        b. 定位

                        c. 浮动(双飞翼布局,圣杯布局)

                        d. flex弹性

 

[E] PC端管理后台整页制作

    练习

 

posted @ 2020-06-17 11:38  CarreyB  阅读(126)  评论(0编辑  收藏  举报