js与jquery中宽度的获取

本文详细介绍了CSS中元素宽度属性的使用方法,包括style.width与offsetWidth的区别,如何使用JQUERY获取不同类型的宽度,以及box-sizing属性的作用和设置方法。特别关注了在不同情况下这些属性的表现差异。

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

1. 当样式写在行内的时候,如 <div id="box" style="width:100px">时,用 style.width或者offsetWidth都可以获取元素的宽度。

但是,当样式写在样式表中时,如 #box{ width: 100px; }, 此时只能用offsetWidth来获取元素的宽度,而style.width所返回的值为空。

2、

style.width 获取的元素宽度只是div的宽度,不包括border、和padding所占的宽度,且宽度值是带单位px的。

offsetWidth 获取的元素宽度为width+border+padding的值(不包括margin),且返回值只为一个数值,不带单位。

3、style.width 也可以在js中用来设置元素的宽度,而offsetWidth不可以。

4、

JQUERY 获取 DIV 宽度与高度(width,padding,margin,border):

var content = $(‘div’). width();//只是获取content宽度

var contentWithPadding = $(‘div’). innerWidth();//获取content+padding的宽度

var withoutMargin = $(‘div’). outerWidth();//获取content+padding+border的宽度

var full = $(‘div’). outerWidth(true);//获取content+padding+border+margin的宽度

5、

box-sizing 属性允许你以某种方式定义某些元素,以适应指定区域。

例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box"。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。

默认值:content-box
继承:no
版本:CSS3
JavaScript 语法:object.style.boxSizing="border-box"

语法

box-sizing: content-box|border-box|inherit:

说明
content-box这是CSS2.1指定的宽度和高度的行为。指定元素的宽度和高度(最小/最大属性)适用于box的宽度和高度。元素的填充和边框布局和绘制指定宽度和高度除外
border-box指定宽度和高度(最小/最大属性)确定元素边框box。也就是说,对元素指定宽度和高度包括padding和border的指定。内容的宽度和高度减去各自双方该边框和填充的宽度从指定的"宽度"和"高度"属性计算
inherit指定box-sizing属性的值,应该从父元素继承

content-box 默认值。该值表示设置元素的width和height时,这两个尺寸实际指的是内容区的尺寸。即:

   width = 内容区的宽度

   height = 内容区的高度

border-box 该值表示设置元素的width和height时,这两个尺寸实际指的是border + padding + 内容区 这三项的总尺寸。即:

   width = border-left + padding-left + 内容区宽度 +padding-right + border-right

   height = border-top + padding-top + 内容区高度 +padding-bottom + border-bottom


6、当所有元素都设置了box-sizing:border-box的时候,这时候通过DOM元素获取的style.width是包含了内边距和边框宽度的宽度,所以这个时候给DOM的子元素的宽度赋值时要考虑到这一点,不能直接用DOM宽度进行赋值,用jquery获取$("div").width()赋值只是content的宽度,这样就避免了内部宽度和外部宽度一致,再加上内边距与边框的宽度,造成外部宽度溢出,实际上扩大了宽度。---bootstrap.css里面对所有元素都进行了box-sizing的设置需要注意:
* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值