`

js获取html元素宽度的思考

阅读更多
转载: js获取html元素宽度的思考
http://blog.csdn.net/zhouruitao/archive/2010/09/07/5867626.aspx
分两种情况讨论:

1、使用内联样式,即直接把CSS写在HTML元素的style属性中
<div id="d1" style="width:100px;height:200px;">              
</div>  

通过以下js代码可以获取width等属性
alert(document.getElementById('d1').style.width);//100px 

在firefox,ie,opera,safari,chrome上都可以取得到宽度和高度值。
2、使用嵌入、链入或引入样式表(非内联样式),这时候通过element.style.width是获取不到的

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">   
<html>   
  <head>   
    <title>b.html</title>      
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">   
    <meta http-equiv="description" content="this is my page">   
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">   
    <mce:style type="text/css"><!--   
        #d2 {   
            width:400px;   
            height:200px;   
            border:5px solid gray;   
            padding:5px;   
        }   
       
--></mce:style><style type="text/css" mce_bogus="1">     #d2 {   
            width:400px;   
            height:200px;   
            border:5px solid gray;   
            padding:5px;   
        }   
    </style>       
    <mce:script type="text/javascript"><!--   
        window.onload=function(){   
               
            //2、使用嵌入、链入或引入样式表(非内联样式)   
               
            //ie:通过currentStyle            
            alert(document.getElementById('d2').currentStyle.width);//400px ie   
               
            //ff,safari,opera,chrome:通过window.getComputedStyle   
            var el=document.getElementById('d2');   
            alert(window.getComputedStyle(el,null).style.width);//400px safari,opera,chrome   
        }   
       
// --></mce:script>   
  </head>   
     
  <body>         
        <div id="d2"></div>   
  </body>   
</html>  



最后封装到一个方法中,

function getRealStyle(el,cssName)   
{                  
    var len=arguments.length, sty, f, fv;   
                       
    'currentStyle' in el ? sty=el.currentStyle : 'getComputedStyle' in window    
                         ? sty=window.getComputedStyle(el,null) : null;   
                                           
    if(cssName==="opacity" && document.all){   
        f = el.filters;   
        f && f.length>0 && f.alpha ? fv=f.alpha.opacity/100 : fv=1;                     
        return fv;   
    }      
    cssName==="float" ? document.all ? cssName='styleFloat' : cssName='cssFloat' : cssName;    
    sty = (len==2) ? sty[cssName] : sty;                                   
    return sty;   
}


如果只想获取元素的style对象,则只传第一个参数,第二个参数是获取该对象style属性为styName的值。
分享到:
评论

相关推荐

    简洁的JS图片交替切换代码

    ### 知识点详解 ...综上所述,该简洁的JS图片交替切换代码通过简单的HTML、CSS和JavaScript实现了基本的图片轮播功能,适用于各种简单的网页项目。通过进一步优化和完善,可以提升其功能性和用户体验。

    js图片无缝平滑滚动

    - **DOM操作**:使用JavaScript获取DOM元素,并通过修改`style.left`属性值来改变图片的位置。 - **事件监听**:通过`onclick`事件监听左右按钮的点击,控制图片滚动的方向。 - **定时器**:使用`setInterval`函数...

    js仿win8瓷砖界面瀑布流

    3. **DOM操作**:收到服务器返回的新数据后,JavaScript需要将这些数据动态添加到页面的DOM(Document Object Model)树中,创建或更新相应的HTML元素,以实现动态加载效果。 4. **响应式设计**:为了适应不同设备...

    js基础知识及面试题.pdf

    JavaScript(简称JS)是一种广泛应用于网页和服务器端开发的编程语言。它是一种轻量级、解释型、基于原型的语言,具有强大的动态性和灵活性。下面将详细介绍JS基础知识以及面试中常见的考点。 标题所提到的“原型”...

    Web前端开发案例教程-教案.doc

    【Web前端开发】Web前端开发是构建互联网应用用户界面的核心技术,主要涉及HTML、CSS和JavaScript这三大基石。HTML(HyperText Markup Language)是用于创建网页内容的基础标记语言,它描述了网页的结构和信息。 1....

    图片时间编辑

    2. **CSS(Cascading Style Sheets)**:CSS用于美化HTML元素,让网页具有视觉吸引力。在“图片时间编辑”项目中,CSS可能用于设定图片和时间显示区域的样式,如位置、大小、颜色、背景等。此外,CSS动画可能也被...

    js菜鸟笔记之图片滚动_ekom.cn

    - `tab2`: 获取id为“demo2”的元素,并将其innerHTML设置为`tab1`的innerHTML。 #### 2. 功能函数 - `Marquee()`: 主要滚动逻辑函数,用于控制图片的滚动行为。 - 如果`tab2`的宽度减去`tab`的水平滚动位置小于...

    【JavaScript源代码】原生JS实现加载进度条.docx

    ### JavaScript 实现加载进度条知识点解析 #### 一、引言 在Web开发中,加载进度条是一个非常实用的功能,能够提升用户体验,特别是在资源较大或网络条件不佳的情况下。本文将详细解析如何使用原生JavaScript(即不...

    jQ学习四步走,为作者学习jquery的笔记方式留下的内容,适合初学者

    2. `.animate()`:自定义动画,可以改变CSS的任意可动画属性,如`$("#element").animate({width: "500px"}, 1000)`,将在1秒内将元素宽度平滑地调整到500像素。 3. **队列与速度控制**:`.delay()`, `.queue()`, `....

    网页设计大作业-五子棋游戏,可以进行双人对弈(免积分下载)

    4. DOM(Document Object Model):在JavaScript中,DOM是HTML文档的结构化表示,用于动态地操作页面元素。在五子棋游戏中,通过DOM操作,可以获取用户点击的位置,更新棋盘的状态,并将这些变化反映到界面上。 5. ...

    鼠标拖动事件应用

    例如,这里定义了一个名为 `cdiv` 的类,设置了元素的高度、宽度、边框样式等属性。这使得被拖动的元素更加醒目,便于用户操作。 ```css .cdiv { height: 250px; width: 250px; border-style: solid; border-...

    JavaScript-30:香草JS挑战

    2. **DOM操作**:JavaScript-30会教你如何使用原生的DOM API来操作HTML元素,如选择元素、添加和删除元素、修改元素内容以及事件监听等,这些都是Web开发中的必备技能。 3. **动画与交互**:挑战中的多个项目涉及...

    向上不间断滚动div+css+js模板.docx

    1. **获取滚动对象**:使用`document.getElementById("mq")`获取指定ID的`div`元素。 2. **设置参数**:定义了单行高度、实际行数、每次滚动高度等变量。 3. **滚动函数**:`run()`函数实现了核心的滚动逻辑,包括...

    HTML-google-clone:Google.lv克隆

    在"HTML-google-clone-main"这个文件夹中,开发者通常会找到HTML文件(如`index.html`)以及可能的CSS(`styles.css`)和JavaScript(`script.js`)文件。CSS用于美化和布局,JavaScript则用于增加动态功能,例如...

    注册验证的写法

    3. **JavaScript事件处理与DOM操作**:使用`document.getElementById()`获取页面元素,通过`innerHTML`和`className`属性动态修改元素的内容和样式,实现即时反馈。 #### 代码解析: - **HTML结构**:页面主要由一...

    jQuery初学实例代码集jQuerydemos

    1. **选择器**: jQuery的选择器类似于CSS选择器,用于选取页面中的HTML元素。例如,`$("#id")`选择ID为"id"的元素,`$(".class")`选择所有类名为"class"的元素,`$("tag")`则选择所有指定标签名的元素。 2. **DOM...

    JS 拼图游戏 面向对象,注释完整。

    根据提供的文件信息,我们可以了解到这是一份关于使用JavaScript(JS)创建拼图游戏的代码文档。该文档强调游戏的实现是“面向对象”的,并且“注释完整”,这表明作者在编写代码时遵循了面向对象的原则,并且为了...

    点击出现图片大图效果

    - **`demo.getElementsByTagName('img')`**:获取`demo`容器内所有的`&lt;img&gt;`元素。 - **`document.getElementById('enlarge_images')`**:获取ID为`enlarge_images`的DOM元素。 ##### 2. 图片点击事件处理 ```...

    javascript实现切换td中的值

    这段代码的核心知识点在于如何操作DOM,包括创建和插入HTML元素,获取元素的内容,以及为元素添加事件监听器。这些操作都是前端开发中最基本且最常见的任务,无论是在处理表单输入、页面布局还是在动态更新内容时,...

Global site tag (gtag.js) - Google Analytics