宽高自适应浏览器兼容和表单高级属性

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属性值相同。





往期精彩:





以上是关于宽高自适应浏览器兼容和表单高级属性的主要内容,如果未能解决你的问题,请参考以下文章

前端资深工程师是啥水平

如何使用CSS让img跟父元素的宽或者高自适应

什么命令可以使iframe框架里的被引用页面宽高自适应框架宽高?

宽高自适应,高度塌陷,伪对象选择符

宽高自适应

swift 字体自适应,宽高自适应