前台设计细节.docx

上传人:b****8 文档编号:28343249 上传时间:2023-07-10 格式:DOCX 页数:36 大小:72.22KB
下载 相关 举报
前台设计细节.docx_第1页
第1页 / 共36页
前台设计细节.docx_第2页
第2页 / 共36页
前台设计细节.docx_第3页
第3页 / 共36页
前台设计细节.docx_第4页
第4页 / 共36页
前台设计细节.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

前台设计细节.docx

《前台设计细节.docx》由会员分享,可在线阅读,更多相关《前台设计细节.docx(36页珍藏版)》请在冰豆网上搜索。

前台设计细节.docx

前台设计细节

1、关于手型光标(css—cursor:

hand;)

在css中定义cursor:

hand;并不能稳定运行,也不是W3C标准,标准的做法cursor:

pointer;

2、关于style、currentStyle、getComputedStyle

样式表分为以下几种:

直接写在tag上的为内嵌样式、写在head元素的style标签中的为内部样式、link引入的为外部样式。

内嵌样式,可以通过Dom.style.样式名称获取,需要注意的时样式名称是驼峰格式

内部样式和外部样式通过style.样式名称是无法获取的,需要通过currentStyle/getComputedStyle来获取,如果硬是使用style的话,你将只能得到一个空值。

如果获取样式时,返回的值是“auto”怎么办?

使用offset+样式名称(首字母大写)

3、样式表的offset、client、scroll和currentStyle属性

offsetHeight=borderTopWidth+clientHeight+scrollbarWidth+borderBottomWidth;

offsetWidth=borderLeftWidth+clientWidth+scrollbarWidth+borderRightWidth;

元素内部实际可用区域(高)=clientHeight-paddingTopWidth-paddingBottomWidth;

元素内部实际可用区域(宽)=clientWidth-paddingLeftWidth-paddingRightWidth;

scrollHeight:

文章的实际高度,不管是否已经用纵向滚动条浏览过。

scrollWidth:

文章的实际宽度,不管是否已经用横向滚动条浏览过。

scrollTop:

用纵向滚动条滚过的高度。

scrollLeft:

用横向滚动条滚过的宽度。

文章未滚过部分(高)=scrollHeight-scrollTop-clientHeight;

文章未滚过部分(宽)=scrollWidth-scrollLeft-clientWidth;

offsetTop:

如果position是absolute,则是相对于body(纵向滚动条滚到最上面,横向滚动条滚到最左面)左上角那个点y轴之间的差。

如果是relative,则是相对于上方或外层元素y轴上的差值。

如果是static(position的默认值),则该属性没有意义。

offsetLeft:

如果position是absolute,则是相对于body(纵向滚动条滚到最上面,横向滚动条滚到最左面)左上角那个点x轴之间的差。

如果是relative,则是相对于上方或外层元素x轴上的差值。

如果是static(position的默认值),则该属性没有意义。

clientTop:

等同于borderTopWidth。

clientLeft:

等同于borderLeftWidth。

currentStyle:

   height:

等同于clientHeight。

   width:

等同于clientWidth。

   left:

等同于offsetLeft。

   top:

等同于offsetTop。

   padding:

共有4个,可以单独指定,也可以一起指定。

该值是指元素border距元素内可用区域之间的距离。

   margin:

共有4个,可以单独指定,也可以一起指定。

该值是指距相邻/周围元素之间的距离。

当元素position为relative时,其4个值分别等同于top、right、bottom和left

4、四种浏览器对clientHeight、offsetHeight、scrollHeight、clientWidth、offsetWidth和scrollWidth的解释差异

网页可见区域宽:

document.body.clientWidth

网页可见区域高:

document.body.clientHeight

网页可见区域宽:

document.body.offsetWidth(包括边线的宽)

网页可见区域高:

document.body.offsetHeight(包括边线的宽)

网页正文全文宽:

document.body.scrollWidth

网页正文全文高:

document.body.scrollHeight

网页被卷去的高:

document.body.scrollTop

网页被卷去的左:

document.body.scrollLeft

网页正文部分上:

window.screenTop

网页正文部分左:

window.screenLeft

屏幕分辨率的高:

window.screen.height

屏幕分辨率的宽:

window.screen.width

屏幕可用工作区高度:

window.screen.availHeight

屏幕可用工作区宽度:

window.screen.availWidth

IE(InternetExplorer)、NS(Netscape)、Opera、FF(FireFox)的区别:

clientHeight

四种浏览器对clientHeight的解释都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。

offsetHeight

IE、Opera认为offsetHeight=clientHeight+滚动条+边框。

NS、FF认为offsetHeight是网页内容实际高度,可以小于clientHeight。

scrollHeight

IE、Opera认为scrollHeight是网页内容实际高度,可以小于clientHeight。

NS、FF认为scrollHeight是网页内容高度,不过最小值是clientHeight。

简单地说

clientHeight就是透过浏览器看内容的这个区域高度。

NS、FF认为offsetHeight和scrollHeight都是网页内容高度,只不过当网页内容高度小于等于clientHeight时,scrollHeight的值是clientHeight,而offsetHeight可以小于clientHeight。

IE、Opera认为offsetHeight是可视区域clientHeight滚动条加边框。

scrollHeight则是网页内容实际高度。

同理clientWidth、offsetWidth和scrollWidth的解释与上面相同,只是把高度换成宽度即可。

注:

以上也是转的,对自己有点参考而已,有些值要跟据页面方式而定!

我用的Ajax就完全没法用上面的方法定高!

javaScript窗口属性:

网页可见区域宽:

document.body.clientWidth

网页可见区域高:

document.body.clientHeight

网页可见区域宽:

document.body.offsetWidth(包括边线的宽)

网页可见区域高:

document.body.offsetHeight(包括边线的宽)

网页正文全文宽:

document.body.scrollWidth

网页正文全文高:

document.body.scrollHeight

网页被卷去的高:

document.body.scrollTop

网页被卷去的左:

document.body.scrollLeft

网页正文部分上:

window.screenTop

网页正文部分左:

window.screenLeft

屏幕分辨率的高:

window.screen.height

屏幕分辨率的宽:

window.screen.width

屏幕可用工作区高度:

window.screen.availHeight

屏幕可用工作区宽度:

window.screen.availWidth

在IE、FireFox、Opera下都可以使用

document.body.clientWidth

document.body.clientHeight

即可获得,很简单,很方便。

而在公司项目当中:

Opera仍然使用

document.body.clientWidth

document.body.clientHeight

可是IE和FireFox则使用

document.documentElement.clientWidth

document.documentElement.clientHeight

原来是W3C的标准在作怪啊

http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果在页面中添加这行标记的话

在IE中:

document.body.clientWidth==>BODY对象宽度

document.body.clientHeight==>BODY对象高度

document.documentElement.clientWidth==>可见区域宽度

document.documentElement.clientHeight==>可见区域高度

注:

在IE中“可见区域”基本不认可body,而必需使用documentElement!

在FireFox中:

document.body.clientWidth==>BODY对象宽度

document.body.clientHeight==>BODY对象高度

document.documentElement.clientWidth==>可见区域宽度

document.documentElement.clientHeight==>可见区域高度

在Opera中:

document.body.clientWidth==>可见区域宽度

document.body.clientHeight==>可见区域高度

document.documentElement.clientWidth==>页面对象宽度(即BODY对象宽度加上Margin宽)

document.documentElement.clientHeight==>页面对象高度(即BODY对象高度加上Margin高)

获取窗口高宽:

varw=document.documentElement.offsetWidth;

varh=document.documentElement.offsetHeight;

完整的代码(自己写的:

张伟)

getstylepropertiesacrossdifferentbrowser

#test

{

position:

absolute;

top:

auto;

left:

auto;

width:

190px;

height:

28px;

padding-left:

10px;

border-color:

bisque;

border-width:

1px;

border-style:

groove;

color:

#7fffd4;

font-weight:

bold;

font-size:

24px;

}

#targetDiv

{

position:

absolute;

top:

85px;

left:

200px;

width:

300px;

height:

28px;

padding-left:

10px;

border-color:

bisque;

border-width:

1px;

border-style:

dotted;

color:

#9900ff;

font-weight:

bold;

font-size:

24px;

}

functionrunTest()

{

vartargetDiv=document.getElementById("targetDiv");

vartestDiv=document.getElementById("test");

targetDiv.innerHTML="topis"+getOffPixel(getStyle(testDiv,"left"));

}

functiongetStyle(element,styleName)

{

varstyleValue;

if(element.style&&element.style[styleName]!

="")

{

styleValue=element.style[styleName];

alert("style:

"+styleValue);

}

elseif(element.currentStyle)

{

//IE&Maxthonie&FireFoxie

styleValue=element.currentStyle[styleName];

alert("currentStyle:

"+styleValue);

}

elseif(window.getComputedStyle)

{

//Maxthon&FireFox

styleValue=window.getComputedStyle(element)

.getPropertyValue(styleName);

alert("computedStyle:

"+styleValue);

}

if(styleValue=="auto")

styleValue=element["offset"+changeToUpper(styleName)]+"px";

returnstyleValue;

}

functionchangeToUpper(styleName)

{

returnstyleName.charAt(0).toUpperCase()+

styleName.substring

(1).toLowerCase();

}

functiongetOffPixel(pixel)

{

returnparseInt(pixel.substring(0,pixel.indexOf("px")));

}

ADivForTest

5、label中的for属性

官方解释:

setsorretrievesthe

要将label绑定到其他的控件,请将label元素的for属性设置为与该控件的ID相同,将label绑定到控件的name属性毫无用处。

但是,要提交表单,你必须为label元素所绑定到的控件制定name。

如果用户单击label,则会先触发label上绑定的onclick事件,然后触发由for属性所指定的控件上的onclick事件。

6、背景元素定位

·CSS控制背景图片:

(1)、背景图片的导入:

background与background-image。

body{background:

url("d:

\images\04.jpg")}

或者

body{background-image:

url("d:

\images\04.jpg")}

(2)、背景图片的显示方式:

background-repeat,

取值:

repeat:

默认值。

背景图像在纵向和横向上平铺

no-repeat:

背景图像不平铺

repeat-x:

背景图像仅在横向上平铺

repeat-y:

背景图像仅在纵向上平铺

body{background:

url("d:

\images\04.jpg");background-repeat:

no-repeat}

(3)、背景图片的大小控制:

对于一个好网页来说,最好不要用太大的图片,原因上面也说过了,影响打开网页的速度。

我们最好还是用PS或者FireWorks处理一下。

不过既然我提到了,我们也不防用CSS来实现图片大小的控制。

我想很多人会自然而然的用上如下代码:

body{background-image:

url("d:

\images\04.jpg");width:

350px;height:

350px;}

呵呵,想法是好的,因为它只是控制BODY的大小。

补充:

W3C于9月10发布了一篇名为《CSSBackgroundsandBordersModuleLevel3》的应文章,里面为CSS的背景加上了几个我们从未见的属性:

background-clip:

background-origin:

background-size:

背景尺寸。

background-break:

虽然是有了这些属性,不过现在还没有支持它们的浏览器。

真是好苦恼啊。

(4)、背景图片的位置控制:

背景图片默认的是左上对齐。

但是我们却不想这样子放置,那我们又该怎么办呢。

不要着急,激动人心的时刻马上到来,现在,让我们来认识一下background-position、background-position-x及background-position-y吧。

a.基本语法:

background-position:

length||length

background-position:

position||position

background-position-x:

length|left|center|right

background-position-y:

length|top|center|bottom

b.语法取值:

length:

百分数|由浮点数字和单位标识符组成的长度值。

position:

top|center|bottom|left|center|right

c.示例:

body

{

background-image:

url("d:

\images\04.jpg");

background-position:

50%50%;

background-repeat:

no-repeat;

}/*设置双向坐标,这时相当于完全居中*/

body

{

background-image:

url("d:

\images\04.jpg");

background-position-x:

50%;

background-repeat:

no-repeat;

}/*设置双向坐标,这时相当于水平居中*/

body

{

background-image:

url("d:

\images\04.jpg");

background-position-y:

50%;

background-repeat:

no-repeat;

}/*设置纵向坐标,这时相当于垂直居中*/

对于取值为length|top|center|bottom我只写下面三个例子。

body

{

background-image:

url("d:

\images\04.jpg");

background-position:

topright;

background-repeat:

no-repeat;

}/*设置双向坐标,这时相当于右上*/

body

{

background-image:

url("d:

\images\04.jpg");

background-position:

50%center;

background-repeat:

no-repeat;

}/*设置双向坐标,这时相当于中下*/

body

{

background-image:

url("d:

\images\04.jpg");

background-position:

60pxcenter;

background-repeat:

no-repeat;

}/*设置双向坐标,这时相当于距左60像素下*/

(5)、多幅背景图片的设置:

对于多幅背景图片的设置,我是在《超越CSS:

WEB设计艺术精髓》里看到的。

不过,却又让我很遗憾,因为,目前支持一个标签内有多幅背景图片的浏览器太小了,我知道的也只有AppleSafari。

以许你会问,这怎么可能。

当你看完这个实例之后,我想你会惊讶,“天啊,CSS3之前都只能给每个元素使用一幅图片。

”如果想研究一下的话,就快快安装一个SAFARI浏览器吧。

对我而言,我相信,这是发展的趋势。

总之一句话,谁解释CSS能力越强,它就将是发展的潮流,谁俱有完美的WEB准标,谁就是明日浏览器之星。

代码如下:

body

{

background-image:

url("d:

\mypic\001.png"),

url("d:

\mypic\002.png");

url("d:

\mypic\003.png");

url("d:

\mypic\004.png");

background-repeat:

no-repeat,

no-repeat,

no-repeat,

no-repeat,

repeat-x,

repeat-y,

repeat-x,

repeat-y,

background-position:

topleft,

topright,

bottomright,

bottomleft,

topleft,

topright,

bottomright,

bottomleft;

}

7、去除a标签获取焦点后的虚线框

当一个链接得到焦点时,默认会有个虚线框。

如图:

在Firefox里可以用-moz-outline:

none;或者outline:

none;来将其去掉。

 

a:

focus

{

    outline:

none;

    -moz-outline:

none;

如果你用过Safari和Chrome会发现,当输入框得到焦点时边框会出现阴影效果。

如果想去掉阴影效果也可以用outline属性。

input,textarea

{

    outline:

none;

言归正传,刚刚说的是Firefox,现在说说IE。

首先比较遗憾,还没有找到通过CSS去掉IE链接虚线框比较好的解决办法。

所以只能用一个替代的办法,就是a标签的hidefocus属性(这个属性是IE独有的)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1