宽高自适应浏览器兼容和表单高级属性
Posted 佳明小分享
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宽高自适应浏览器兼容和表单高级属性相关的知识,希望对你有一定的参考价值。
宽高自适应
网页布局中经常要定义元素的宽和高。但很多时候我们希望元素的 大小能够根据窗口或子元素自动调整,这就是自适应。
元素自适应在网页布局中非常重要,它能够使网页显示更灵活,可 以适应在不同设备、不同窗口和不同分辨率下显示。
1、宽度自适应 元素宽度设置为100%。(块元素宽度默认为100%)
2、元素具备最小高度的自适应 min-height属性:最小高度;
说明:IE6浏览器不识别该属性,height属性在IE6里就类似minheight作用。 hack1:min-height:value; _height:value; hack2:min-height:value; height:auto!important; height:value;
min-height(最小高度)
max-height(最大高度)
min-width(最小宽度)
max-width(最大宽度)
注:IE6及以下版本不识别该组属性。
3、高度自适应
元素高度自适应窗口高度 设置方法:html,body{height:100%;} 需要自适应的元素: height:100%;
自适应元素高度: 父元素:height:value;
需要自适应父元素高度的子元素: height:100%;
height:auto,是指根据块内内容自动调节高度。
height:100%,是指其相对父块高度而定义的高度,也就是按照离 它最近且有定义高度的父层的高度来定义高度。
浏览器兼容
五大浏览器内核代表作品
*Trident: IE、Maxthon(遨游)、Theworld世界之窗、360浏览器 *Gecko:代表作品Mozilla Firefox 是开源的,它的最大优势是跨平台, 能在Microsoft Windows、Linux和MacOS X等主要操作系统上运行。 *Webkit : 代表作品Safari、Chrome , 是一个开源项目。 *Presto : 代表作品Opera ,Presto是由Opera Software开发的浏 览器排版引擎。它也是世界上公认的渲染速度最快的引擎。
*Blink :由Google和Opera Software开发的浏览器排版引擎,2013 年4月发布。
为什么会出现浏览器兼容问题?
由于各大主流浏览器由不同的厂家开发,所用的核心架构和代码也 很难重和,这就为各种莫名其妙的Bug(代码错误)提供了温床。再 加上各大厂商出于自身利益考虑而设置的种种技术壁垒,都让CSS 应用起来比想象得要麻烦。浏览器的兼容问题是我们必须去克服的
CSS Bug、CSS Hack和Filter
CSS Bug:CSS样式在各浏览器中解析不一致的情况,或者说CSS 样式在浏览器中不能正确显示的问题称为CSS bug.
CSS Hack:CSS中,Hack是指一种兼容CSS在不同浏览器中正确 显示的技巧方法,因为它们都属于个人对CSS代码的非官方的修改, 或非官方的补丁。有些人更喜欢使用patch(补丁)来描述这种行为。
Filter:表示过滤器的意思,它是一种对特定的浏览器或浏览器组显 示或隐藏规则或声明的方法。本质上讲,Filter是一种用来过滤不同 浏览器的Hack类型。
IE6常见CSS解析Bug及hack
1、图片间隙
A) div中的图片间隙(该bug出现在IE6及更低版本中) 描述:在div中插入图片时,图片会将div下方撑大三像素。
hack1:将</div>与<img>写在一行上;
hack2:将<img>转为块状元素,给<img>添加声明:display:block;
2、双倍浮向(双倍边距)
描述:当Ie6及更低版本浏览器在解析浮动元素时,会错误地把浮向 边界加倍显示。 hack:给浮动元素添加声明:display:inline;
3、默认高度(IE6)
描述:在IE6及以下版本中,部分块元素拥有默认高度(低于18px 高度) hack1:给元素添加声明:font-size:0; hack2:给元素添加声明:overflow:hidden;
4、表单元素行高不一致(IE,MOZ,C,O,S)
描述:表单元素行高对齐方式不一致 hack:给表单元素添加声明:float:left;
5、按钮元素默认大小不一
描述:各浏览器中按钮元素大小不一致 hack1: 统一大小/(用a标记模拟) hack2:在input上写按钮的样式,一定要把input的边框去掉。 hack3:如果这个按钮是一个图片,直接把图片作为按钮的背景图 即可。
6、百分比bug
描述:在IE6及以下版本中在解析百分比时,会按四舍五入方式计 算从而导致50%加50%大于100%的情况。
hack: 给右面的浮动元素添加声明:clear:right;
7、鼠标指针bug
描述:cursor属性的hand属性值只有IE浏览器识别,其它浏览器不识别 该声明,cursor属性的pointer属性值IE6.0以上版本及其它内核浏览器都 识别该声明。 hack:如统一某元素鼠标指针形状为手型,应添加声明:cursor:pointer;
8、透明属性
IE浏览器写法:filter:alpha(opacity=value);取值范围 1-100 兼容其他浏览器写法:opacity:value;(value的取值范围0-1,0.1,0.2,0.3----0.9)
过滤器(filter)
1、下划线属性过滤器 当在一个属性前面增加了一个下划线后,由于符合标准的浏览器不 能识别带有下划线的属性而忽略了这个声明,但是在IE6及更低版 本浏览器中会继续解析这个规则。
语法:选择符{ _属性:属性值;}
2、!important关键字过滤器 它表示所附加的声明具有最高优先级的意思。但由于IE6及更低版 本不能识别它,我们可以利用IE6的这个Bug作为过滤器来兼容IE6 和其它标准浏览器。
语法:选择符{属性:属性值!important;}
3、*属性过滤器
当在一个属性前面增加了*后,该属性只能被IE7浏览器识别,其它 浏览器混略该属性的作用。
语法:选择符{*属性:属性值;}
表单高级属性
表单的组成:
表单域:<form name="" method="" action=""> </form>
表单控件: <input type="text" value=""/>
提示信息:
表单字段集
语法:<fieldset></fieldset>
说明:相当于一个方框,在字段集中可以包含文本和其他元素。 该元素用于对表单中的元素进行分组并在文档中区别标出文本。 fieldset元素可以嵌套,在其内部可以在设置多个fieldset对象。 disabled定义空间禁制可用
表单字段集效果
字段级标题
语法:<legend></legend>
说明:legend元素可以在fieldset对象绘制的方框内插入一个标题。 legend元素必须是fieldset内的第一个元素。
字段级标题效果
提示信息标签
语法:<label for="绑定控件id名"></label>
说明:label元素用来定义标签,为页面上的其他元素指定提示信息。 要将label元素绑定到其他的控件上,可以将label元素的for属性设置 为与该控件的id属性值相同。
往期精彩:
以上是关于宽高自适应浏览器兼容和表单高级属性的主要内容,如果未能解决你的问题,请参考以下文章