来一发CSS教程:关于网页中的通明元素
使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。网页制造poluoluo文章简介:CSS3草案中界说了{opacity:|inherit;}来声明元素的通明度,这已失掉了年夜多半古代扫瞄器的撑持,而IE则很早经由过程特定的公有属性filter来完成的,以是HTML元素的通明效果已无处不在了。
CSS3草案中界说了{opacity:|inherit;}来声明元素的通明度,这已失掉了年夜多半古代扫瞄器的撑持,而IE则很早经由过程特定的公有属性filter来完成的,以是HTML元素的通明效果已无处不在了。起首看看A级扫瞄器所撑持的用CSS完成元素通明的计划:
扫瞄器最低
版本计划InternetExplorer4.0filter:alpha(opacity=xx);5.5filter:progid:DXImageTransform.Microsoft.Alpha(opacity=xx);8.0filter:"alpha(opacity=xx)";
filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=xx)";
-ms-filter:"alpha(opacity=xx)";
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(opacity=30)";Firefox(Gecko)0.9(1.7)opacityOpera9.0opacitySafari(WebKit)1.2(125)opacity实践上在IE8中,-ms-filter是filter的别号,二者区分是-ms-filter的属相值必需被单引号或双引号包抄,而filter中则不是必需,而在IE8之前的版本中,filter的属性值必需不被单引号或双引号包抄。
IE中的HTML元素要完成通明,则其必需具有layout,如许的元素有仅可读的属性hasLayout,且其值为true。详细情形以下:
[*]body、img、table、tr、th、td等元素的hasLayout一向为true。
[*]type为text、button、file或select的input的hasLayout一向为true。
[*]设置{position:absolute}的元素的hasLayout为true
[*]设置{float:left|right}的元素的hasLayout为true
[*]设置{display:inline-block}的元素的hasLayout为true
[*]设置{height:xx}或{width:xx}的元素必需详细以下两个前提之一,其hasLayout才干为true:
[*]IE8兼容形式和IE8之前的扫瞄器中,在尺度(strict)形式下其display的值是block,如demo3就不可。
[*]元素在怪癖形式(compatmode)下。
[*]设置了{zoom:xx}的元素在IE8的兼容形式或IE8之前的扫瞄器中其hasLayout为true,但在IE8的尺度形式下则不会触发hasLayout。
[*]设置了{writing-mode:tb-rl}的元素的hasLayout为true。
[*]元素的contentEditable的属性值为true。
[*]在IE8尺度形式下设置了{display:block}的元素的hasLayout一向为true,如demo8。
关于hasLayout的更多概况能够看ExploringInternetExplorer“HasLayout”Overview和Onhavinglayout
从下面就能够看出IE完成HTML元素的通明云云凌乱,为了向下兼容和本人的公有属性让IE上完成元素通明有多种体例,好比CSSOpacity实例中的demo1到demo8,固然IE团队保举完成通明的体例是:
{-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);opacity:.5;}而今朝复杂最好用的完成体例是如CSSOpacity中demo4如许:
{filter:alpha(opacity=30);opacity:.3;}实践上今朝最盛行的JavaScript框架的设置款式办法都是使用这类体例,而且针对IE设置了{zoom:1}来让元素的hasLayout为true,但在IE8的尺度形式下zoom其实不能触发hasLayout,以是使用它们设置hasLayout为false的元素的通明度时在IE8的尺度形式下是失利的,这个bug在YUI、Prototype、jQuery和Mootools的最新版本中都存在,详细请在IE8尺度形式下看demo9到demo11。一样因为在IE8中设置通明度的体例多种多样,以是使用JavaScript猎取HTML元素的通明度值必要思索多种情形,YUI完善办理了这个成绩,Prototype比jQuery略微全面一点,而Mootools间接是bug,详细能够在IE下看demo1到demo8的演示。从这个角度给4个框架来个排名的话,YUI第1、Prototype第2、jQuery第3、Mootools垫底。
我复杂的完成了设置和猎取Opacity的函数,能够避开下面框架存在的bug,请在IE8尺度形式下看demo12:
//设置CSSopacity属性的函数,办理IE8的成绩varsetOpacity=function(el,i){if(window.getComputedStyle){//fornon-IEel.style.opacity=i;}elseif(document.documentElement.currentStyle){//forIEif(!el.currentStyle.hasLayout){el.style.zoom=1;}if(!el.currentStyle.hasLayout){//在IE8中zoom不失效,以是再次设置inline-blockel.style.display=inline-block;}el.style.filter=alpha(opacity=+i*100+);}}//猎取CSSopacity属性值的函数//自创自http://developer.yahoel.com/yui/docs/YAHOO.util.Dom.html#method_getStylevargetOpacity=function(el){varvalue;if(window.getComputedStyle){value=el.style.opacity;if(!value){value=el.ownerDocument.defaultView.getComputedStyle(el,null);}returnvalue;}elseif(document.documentElement.currentStyle){value=100;try{//willerrorifnoDXImageTransformvalue=el.filters.opacity;}catch(e){try{//makesureitsinthedocumentvalue=el.filters(alpha).opacity;}catch(err){}}returnvalue/100;}}不能不说,这些事都是IE整出来的
在几乎所有的浏览器上都可以使用。15.以前一些非得通过图片转换实现的功能,现在只要用CSS就可以轻松实现,从而更快地下载页面。 在刚开始接触网页的第一堂课上,听说网页制作会是一门很无聊并且很难听懂的过程,而事实却印证了这样一个事实。 Adobe Dreamweaver(前称Macromedia Dreamweaver)是Adobe公司的著名网站开发工具。 使用所见即所得的接口,亦有HTML编辑的功能。它现在有Mac和Windows系统的版本。原本由Macromedia公司所开发。 还是在Dreamweaver所见即所得添加链接是,可以选中文字或图片然后按下shift键不放鼠标拖出箭头直接指向文件即可。这是比较简单的也是常用的方之一。 只要我们努力,无论是怎样的艰难险阻,成功依然会迎面直击。在刚开始时我觉得dreamweaver mx XX很难理解。 足见市场的反响和MACROMEDIA公司对它们的自信。说到Dreamweaver8我们应该了解一下网页编辑器的发展过程,随着互联网(Internet) 的家喻户晓。 您在所见即所得网页编辑器进行网页制作和在WORD中进行文本编辑不会感到有什么区别,但它同时也存在着致命的弱点。
页:
[1]