盒模型

本文详细介绍了CSS中的多种高度属性及其使用方法,包括.height(), .css('height'), .innerHeight(), .outerHeight()等,并对比了它们之间的差异。此外,还探讨了box-sizing属性的作用以及如何获取元素的滚动位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. .height()

  获取匹配元素集合中的第一个元素的当前计算高度值 或 设置每一个匹配元素的高度值(带一个参数)。

2.box-sizing

  css3中引入了一个新的属性:box-sizing,它具有“content-box”和”border-box“两个值。

  box-sizing: content-box;   -------定义width和height时,不包括border和padding。

  box-sizing: border-box;    -------定义width和height时,border和padding则是被包含在宽高之内的。

     (不定义box-sizing时:

  IE:在 IE6以前的版本中,width和height是包括border和padding的,IE6之后则不包括。

  其他浏览器:width和height不包括border和padding。)

  

3. .css()与 .height()

   1).css('height').height()之间的区别是:

    .height()返回一个没有单位的数值(例如,400),

       .css('height')是返回带有完整单位的字符串(例如,400px)。

   2) .height('value')与.css('height',value)之间的区别:

      当box-sizing: border-box; 时, .height('value')设置的是纯的height值,.css('height',value)设置的是包括padding和border的值;

      没有设置box-sizing: border-box; 时,两者效果一样。

 

4. .innerHeight()

  为匹配的元素集合中获取第一个元素的当前计算高度值,包括padding,但是不包括border。.innerHeight()没有参数。

  

 

5. .outerHeight()

  获取元素集合中第一个元素的当前计算高度值,包括padding,border和选择性的margin。

  返回一个整数(不包含“px”)表示的值 ,或如果在一个空集合上调用该方法,则会返回 null。

  在.outerHeight()计算中总是包含padding和border ;如果includeMargin参数是true,那么margin (top 和 bottom)也会被包含。

 

6. jQuery(window).height()与jQuery(document).height()

  jQuery(window).height()代表了当前可见区域的大小;jQuery(document).height()则代表了整个文档的高度。  

  注意当浏览器窗口大小改变时(如最大化或拉大窗口后) jQuery(window).height() 随之改变,但是jQuery(document).height()是不变的。

 

$(document.documentElement).height()与$(document).height()没什么区别:

$(document.documentElement) 是指[<html>…</html>];

  $(document)是[#document],即 [<!DOCTYPE html><html>…</html>],包括<html></html>标签的顶部内容,如<!DOCTYPE html>

 

7. scrollTop()

  $(document).scrollTop() 获取垂直滚动的距离,即当前滚动的地方的窗口顶端到整个页面顶端的距离
  $(document).scrollLeft() 这是获取水平滚动条的距离

  当获取到scrollTop()==0的时候,就是顶端了,

  当获取scrollTop()>=$(document).height()-$(window).height()  就可以知道已经滚动到底端了(仔细的想确实是这样哦~~)

 

8. .getBoundingClientRect()

  该方法获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。下面用图说明下:

   

 

例子:document.getElementById('div1').getBoundingClientRect();

结果是:lientRect {
            height: 110,
            width: 460,
            left: 221.5,
            bottom: 262,
            right: 681.5
            __proto__: ClientRect
          }

  该方法已经不再只是适用IE了,FF3.0+和Opera9.5+已经支持了该方法,可以说在获得页面元素位置上效率能有很大的提高,在以前版本的Opera和Firefox中必须通过循环来获得元素在页面中的绝对位置。

转载于:https://www.cnblogs.com/mousehhq/p/4312900.html

### CSS 模型概念 CSS 模型是网页布局的基础之一,用于描述页面上每个元素作为一个矩形区域的行为。这个矩形由四个部分组成:内容区(content)、内边距(padding)、边框(border)以及外边距(margin)。不同浏览器默认采用不同的模型计算方式。 #### 怪异模型与标准模型区别 在怪异模型中,`width` 和 `height` 属性不仅定义了内容区的尺寸,还包括了内边距和边框宽度,但不包含外边距[^1];而在标准模型下,这些属性仅指定了内容本身的大小,额外的空间则通过独立设定 `padding` 及 `border` 来增加整体占据空间[^2]。 为了兼容这两种模式,在现代Web开发实践中推荐显式声明 `box-sizing` 属性: - 当设置为 `content-box` 时遵循W3C标准模型; - 设置成 `border-box` 则模仿IE的传统行为,即把 padding 和 border 计入到指定的宽高之内。 ```css * { box-sizing: border-box; } ``` 上述代码片段展示了如何全局应用 `border-box` 模型给所有HTML标签,从而简化样式表编写并提高跨浏览器一致性。 ### 使用方法实例 假设有一个容器需要固定宽度为300px,并希望其内部填充物加上边界不超过此限值,则可以如下操作: ```html <div class="container"> <!-- 子元素 --> </div> ``` ```css .container { width: 300px; /* 设定总宽度 */ padding: 20px; /* 添加内边距 */ border: 5px solid black; /* 定义边框 */ box-sizing: border-box; /* 应用 IE/Edge 的模型 */ } ``` 这样即使设置了较大的内外间距,`.container` 实际占用的空间仍然保持为300像素不变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值