Querying Element Position and Size
查询元素坐标和大小
引用
the offsetLeft and offsetTop properties of an element return the X and Y coordinates of the element.
the offsetWidth and offsetHeight properties return the width and height. These properties are read-only and return pixel values as numbers (not as CSS strings with "px" units appended).
They mirror the CSS left, top, width, and height attributes
offesetLeft and offsetTop specify the X and the Y coordinates of an element relative to offsetParent element.
For positioned elements, the offsetParent is typically the <body> tag or the <html> tag (which has an offsetParent of null) or a positioned ancestor of the positioned element. For nonpositioned elements, different browsers handle the offsetParent differently.
In general, therefore, the portable way to determine the position of an element is to loop through the offsetParent references, accumulating offsets.
对于已定为的元素,offsetLeft\offsetTop返回元素的X、Y坐标。
offsetWidth、offsetHeight返回宽和高。返回数值只有数值而没有单位。
这些属性分别对性CSS的left、top、width、height属性。
offsetTop、offsetLeft的是相对于offsetParent的。
对于已经定位过的元素,offsetParent通常是body标签或html标签(通常这两个标签的offsetParent值是null);对于没有定位过的,offsetParent就是一个已经定位过的祖先。
对于未定位
// Get the X coordinate of the element e.
function getX(e) {
var x = 0; // Start with 0
while(e) { // Start at element e
x += e.offsetLeft; // Add in the offset
e = e.offsetParent; // And move up to the offsetParent
}
return x; // Return the total offsetLeft
}
下面这个方法就考虑了滚动条的存在,这个是比较健壮的版本:
function getY(element) {
var y = 0;
for(var e = element; e; e = e.offsetParent) // Iterate the offsetParents
y += e.offsetTop; // Add up offsetTop values
// Now loop up through the ancestors of the element, looking for
// any that have scrollTop set. Subtract these scrolling values from
// the total offset. However, we must be sure to stop the loop before
// we reach document.body, or we'll take document scrolling into account
// and end up converting our offset to window coordinates.
for(e = element.parentNode; e && e != document.body; e = e.parentNode)
if (e.scrollTop) y -= e.scrollTop; // subtract scrollbar values
// This is the Y coordinate with document-internal scrolling accounted for.
return y;
}
Translucency
透明
每个浏览器实现透明度方法不一样,所以CSS会很麻烦:
opacity: .75; /* standard CSS3 style for transparency */
-moz-opacity: .75; /* transparency for older Mozillas */
filter: alpha(opacity=75); /* transparency for IE; note no decimal point */
Scripting Inline Styles
内联样式编程
引用
It is important to understand that the CSS2Properties object you obtain with the style property of an element specifies only the inline styles of the element. You cannot use the properties of the CSS2Properties object to obtain information about the stylesheet styles that apply to the element. By setting properties on this object, you are defining inline styles that effectively override stylesheet styles.
你通过元素的stlye属性得到的CSS2Properties对象只包含内联样式,你无法通过这个属性访问到整个样式表。但是通过设定这个属性,你是可以强制更改这个元素的属性的,因为内联样式的优先级是最高的。
在编写内联样式的时候,要注意驼背命名法,以及一些特殊的CSS名称的转换,比如:
float - > cssFloat
分享到:
相关推荐
CSS还提供了盒模型(Box Model)来处理元素的边距、填充和大小,以及浮动和定位机制来实现复杂布局。此外,CSS3引入了更多的特效和动画,如渐变、阴影、旋转和过渡等。 JavaScript是一种强大的脚本语言,用于实现...
`style`属性允许直接访问元素的内联样式,`getComputedStyle()`可以获取元素的最终计算样式。 7. **文本和数据操作**:`textContent`和`innerHTML`属性分别用于获取或设置元素的纯文本和HTML内容,这对于动态更新...
**JavaScript**是一种轻量级的解释型编程语言,主要用于网页和网络应用的客户端脚本。JavaScript的核心特性包括变量、数据类型、函数、对象、数组、控制流程和错误处理等。它能够增强网页的交互性,例如表单验证、...
- CSS负责页面的样式表现,JavaScript用于添加交互行为。 - 使用CSS可以控制页面布局、颜色、字体等视觉效果。 - JavaScript可以响应用户事件,进行数据验证,创建动态效果。 文件内容虽然提供的是前十章的课后...
6. 选择器权重:id 选择器 > 类选择器 > 标签选择器,内联样式权重最高。 7. 样式层叠:内部样式表 > 外部样式表 > 浏览器默认样式。 8. 预处理器:如 SASS、LESS,提供变量、嵌套、混合等特性,方便编写和维护 CSS...
这个压缩包包含了几个关键的编程语言和技术的参考手册,它们是JavaScript、AJAX、CSS、ASP和SQL。接下来,我们将逐一深入探讨这些知识点。 **JavaScript**:JavaScript是一种广泛用于网页和网络应用的脚本语言,它...
CSS可以使用内联样式、内部样式表或外部样式表来应用。例如,`.myClass {color: red;}`将设置拥有该类名元素的文字颜色为红色。CSS选择器如`#myID`, `.myClass`, `element`等帮助定位和应用样式。CSS3新增了诸如动画...
5. **选择器层次与优先级**:CSS中的选择器有不同的权重,内联样式权重最高,接着是ID选择器,类选择器,标签选择器,以及通用选择器和伪类等。了解优先级规则对于解决样式冲突至关重要。 **JavaScript** ...
JavaScript是一种解释型的、动态类型的编程语言,用于实现网页的动态交互。JavaScript代码可以在用户的浏览器上运行,与用户进行实时互动,比如表单验证、动画效果、异步数据请求等。学习JavaScript,首先要理解变量...
传统的CSS通过外部样式表或内联样式来控制网页元素的样式,而CSS-in-JS则是将样式定义为JavaScript对象,允许动态样式计算和组件化。这种方式带来了诸如更好的封装性、更高的可复用性和更灵活的样式控制等优点。然而...
4. 内联样式内联样式是直接在 HTML 元素中使用 `style` 属性来定义样式,这种方式具有最高的优先级,但不推荐大量使用,因为它降低了代码的可维护性和重用性。例如: ```html ; font-size: 18px;">这是一个红色、18...
CSS的“层叠”特性意味着样式可以来自多个源,如外部样式表、内部样式块和内联样式。样式冲突时,根据权重决定最终应用的样式,权重越高,优先级越大。权重由选择器类型决定,ID选择器权重最高,类、属性和伪类次之...
你可以用CSS选择器来定位特定的HTML元素,并在JavaScript中修改这些选择器的样式,以实现动画效果、响应式设计或其他交互功能。CSS3引入了许多新特性,如过渡(transitions)、动画(animations)和3D变换,这些都是...
important、内联样式、ID选择器、类选择器、属性选择器、元素选择器等有不同的优先级,用于解决样式冲突。 5. **响应式设计**: CSS媒体查询(media queries)允许根据设备特性(如屏幕宽度)应用不同的样式,实现...
CSS可以通过内联样式、内部样式表(`<style>`标签)或外部样式表引用来应用。通常,我们会在JavaScript中通过`element.style`对象来更改元素的样式。例如,改变一个元素的颜色: ```javascript var element = ...
CSS有三种应用方式:内联样式、内部样式表和外部样式表。使用选择器(如元素选择器、类选择器、ID选择器等)定位到HTML元素,并应用样式规则。CSS3更是带来了许多新的选择器、过渡效果、动画和响应式设计功能,如...
【CSS+DIV实现的时钟】是一种网页设计技术,它利用层叠样式表(CSS)和定义布局的分块元素(DIV)来创建一个动态显示时间的时钟。在这个项目中,开发者通常会通过JavaScript或者jQuery来处理动态更新时间的部分,而...
- **使用样式:**通过JavaScript修改元素的样式。 6. **实用小程序:** - **状态栏滚动信息:**使用JavaScript动态更新状态栏文本。 - **计算用户来访次数:**使用Cookie记录访问次数。 - **散布页面的星星:**...