完善上一篇日志中demo的两个不足。
- js只能修改html内部的css样式代码;
- 隐藏div的高度固定,如果隐藏区域文字变动时,布局变差。
1. js调用外部css样式表的style值
css样式表有三种写法:
- 内嵌样式(inline Style) :是写在Tag里面的,内嵌样式只对所有的Tag有效。
- 内部样式(internal Style Sheet):是写在HTML的 里面的,内部样式只对所在的网页有效。
- 外部样式表(External Style Sheet):如果很多网页需要用到同样的样式(Styles),将样式(Styles)写在一个以.css为后缀的CSS文件里,然后在每个需要用到这些样式(Styles)的网页里引用这个CSS文件。
在JavaScript中,通过document.getElementById(id).style.XXX就可以获取到XXX的值,但意外的是,这样做只能取到通过内嵌方式设置的样式值,即style属性里面设置的值。
解决方案:引入currentStyle,runtimeStyle,getComputedStyle style 标准的样式:
/*Get css property value from extenal style sheet for IE browser */
if(hid.currentStyle) {
display = hid.currentStyle['display'];
}
/*Get css property value from extenal style sheet for FireFox, Chrome browser */
else if(window.getComputedStyle) {
display = window.getComputedStyle(hid, null)['display'];
}
参考链接:http://apps.hi.baidu.com/share/detail/22727000
获得一个不能预知高度的DIV的高度
以下完全摘自: 获得一个不能预知高度的DIV的高度
- 通过元素的clientHeight属性能够得到元素的高度,如:
- var height = element.clientHeight;
-
- 这种做法的局限:
- 1. 如果元素的display属性设置为none, 那么得到的结果为0
- 2. 在safari浏览器中,需要使用:element.offsetHeight得到实际高度,这是safari浏览器的bug
-
- 下面是Prototype提供的方法,能够兼容各种浏览器,同时在元素隐藏的情况下也能正确得到元素尺寸,供参考:
- getDimensions: function(element) {
- element = $(element);
- var display = $(element).getStyle('display');
- if (display != 'none' && display != null)
- return {width: element.offsetWidth, height: element.offsetHeight};
-
-
-
- var els = element.style;
- var originalVisibility = els.visibility;
- var originalPosition = els.position;
- var originalDisplay = els.display;
- els.visibility = 'hidden';
- els.position = 'absolute';
- els.display = 'block';
- var originalWidth = element.clientWidth;
- var originalHeight = element.clientHeight;
- els.display = originalDisplay;
- els.position = originalPosition;
- els.visibility = originalVisibility;
- return {width: originalWidth, height: originalHeight};
- }
Prototype提供的方法很聪明,通过
- els.visibility = 'hidden';
- els.position = 'absolute';
- els.display = 'block';
得到了
- display:none
的 width,height。
自己裸奔写js代码很傻だけど...
分享到:
相关推荐
本主题聚焦于如何在Unigui项目中调用外部JavaScript(js)和样式表(css)资源,这对于扩展功能、引入第三方库或者实现自定义样式是必要的。 首先,理解Unigui的基础架构是关键。Unigui基于Vue.js,Vue.js是一个...
调用方法: 如果改变className,则事先在样式表中申明类,但调用时不要再跟style,像document.getElementById(‘obj’).style.className=”…”的写法是错误的!只能写成:document.getElementById(‘obj’)....
"韩顺平《轻松搞定网页设计HTML+CSS+JAVASCRIPT》之DIV+CSS学习笔记" 本资源主要讲解了 DIV+CSS 的概念和应用, DIV 是 HTML 文档中用来提供结构和背景的元素,而 CSS 是一种用来表现 HTML 或 XML 等文件式样的...
在本文中,我们学习了使用JS+CSS来实现DIV层自适应高度和宽度的技术。我们了解了CSS基础知识、JavaScript基础知识、获取浏览器窗口的高度、实现DIV层自适应高度、实现DIV层自适应宽度和监听窗口resize事件等知识点。...
HTML+CSS+JavaScript教程学习笔记HTML+CSS+JavaScript教程学习笔记 HTML+CSS+JavaScript教程学习笔记HTML+CSS+JavaScript教程学习笔记 HTML+CSS+JavaScript教程学习笔记HTML+CSS+JavaScript教程学习笔记 ...
在这个主题中,我们将深入探讨如何在Unigui项目中调用外部JavaScript库和CSS样式表,以及如何创建一个功能完备的左侧导航栏。 首先,调用外部JavaScript库是Unigui应用扩展功能的关键步骤。这通常涉及到在HTML页面...
1. **知识内容** - 本课主要讲解CSS样式表和选择器的概念,以及如何添加外部CSS样式表和修改其属性值。通过理解这些概念,学生能够独立设计和美化网页,同时提升审美和创新能力。 2. **教材处理** - 教师将知识点...
前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar前端学习笔记网站(HTML5+CSS3+JavaScript前端网页web课程设计).rar ...
外部样式表是将css代码写入到一个独立的文件中,并通过link标签将其链接到jsp页面中。这种方法的优点是可以将样式统一管理,修改样式只需要修改该文件,所有链接到该文件的jsp页面将自动更新。其缺点是需要额外的...
**CSS(层叠样式表)**是网页设计中不可或缺的一部分,它用于定义网页内容的外观、布局和结构。本资源包含一系列中文手册,帮助开发者深入理解CSS的核心概念和技巧。 1. **Cascading Style Sheet 样式表中文手册**...
标题中的“用js动态改变css样式表”是指在网页开发中使用JavaScript来动态修改或切换CSS样式表,从而实现页面样式的实时更新。这一技术在交互式网站设计中非常常见,因为它允许用户根据个人喜好或需求调整页面外观。...
javascript访问外部css文件的所有方法总结,希望对大家有所帮助
2. **CSS概述**:层叠样式表(Cascading Style Sheets, CSS)是一种用来表现HTML或XML等文件样式的计算机语言,可以为网页定义颜色、字体、布局等外观属性。 #### 三、高度自适应原理 要实现`div`的高度自适应,主要...
**CSS样式学习笔记** **一、CSS简介** CSS(Cascading Style Sheets)是一种层叠样式表语言,自1996年起发展至今,已经成为Web设计的标准之一。1998年5月,W3C发布了CSS Level 2规范,为网页设计提供了强大的样式...
JavaScript学习笔记讲解版参考.pdf是一份详尽的教程,涵盖了从基础到进阶的JavaScript知识。这份笔记首先从CSS样式表开始,引导读者理解网页样式的设置与应用。 1. CSS(Cascading Style Sheets)样式表是用于控制...
网页设计是构建互联网内容...通过深入研究这个`DIV+CSS+JavaScript`的首页示例,你不仅可以掌握基础的网页设计技巧,还能了解到现代网页开发的实践方法。不断实践和迭代,你将能够创造出更加精致、功能丰富的网页作品。
通过这个"unigui_调用外部js与css (1).rar"文件,你可能会学习到如何更高效、更灵活地在Unigui应用中集成外部样式和脚本,从而提升应用的交互性和用户体验。记得解压文件查看示例代码和详细步骤,这将有助于你更好地...
`DIV`(Division)是HTML中的一个容器元素,它主要用于组织和划分页面内容,而`CSS`(Cascading Style Sheets)则是一种样式表语言,用来描述HTML或XML(包括如SVG、MathML等各种XML方言)文档的呈现。在这个“打分...
2. 能够使用CSS的扩展选择器选择元素 3. 能够说出盒子模型的属性 4. 能够说出JS中五种数据类型 5. 能够使用JS中常用的运算符 6. 能够使用JS中的流程控制语句 7. 能够在JS中定义命名函数和匿名函数
JavaScript(简称JS)和CSS是Web开发中的两个关键技术,它们分别负责网页的交互逻辑与样式设计。在本文中,我们将深入探讨如何使用JavaScript来动态地改变CSS样式,以实现如标题所示的效果——通过页面JS事件改变...