`
tom&jerry
  • 浏览: 66156 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

dispaly:none隐藏的部分无法获取宽度高度

    博客分类:
  • css
 
阅读更多

当html中被display:none隐藏的部分,无法获取正确的宽度、高度,其返回的值为0或(在html及css中)明确指定的数值,并且
其返回值仅为指定值的数字部分,并不一定反映元素应有的大小,因为浏览器对display:noe的元素不做解析与渲染,无法计算出其真实的大小。

 

示例:

 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../js/jquery-1.8.1.min.js"></script>
<style type="text/css">
#width1,#width2,#width3{
	margin: 10px 0;
	background-color: #eee;
}

#cont div {
	margin: 10px 0;
	background-color: #bcd;
}
</style>
</head>
<body>
	<div>
		<div id="width1"></div>
		<div id="width2"></div>
		<div id="width3"></div>
	</div>
	<div>

		<div id="cont">
			<div id="tab-1">
				<div id="x">x: dddddddd</div>
				<div id="xx" style="width: 50px;">xx: dddddddddddd</div>
			</div>
			<div id="tab-2">
				<div id="wD">wD: 12333333412</div>
				<table id="wT">
					<tr>
						<td>wT: 12333333412</td>
					</tr>
				</table>
			</div>
			<div id="tab-3">
				<div id="wwD" style="30%;">wwD: dddddddzzzzz</div>
				<table id="wwT" width="30%">
					<tr>
						<td>wwT: dddddddzzzzz</td>
					</tr>
				</table>
			</div>
			<div id="tab-4">
				<div id="wwwp">
				<div id="wwwD" style="50px;">wwwD: asadaaaaad</div>
				<table id="wwwT" width="50">
					<tr>
						<td>wwwT: asadaaaaad</td>
					</tr>
				</table>
				</div>
			</div>
		</div>
	</div>
	<script type="text/javascript">
		$(document).ready(function() {
			$('#cont').children(':not(:first)').hide();
			$('#width1').text(gw());
			
			$('#cont').children(':not(:first)').show();
			$('#width2').text(gw());
			
			$('#cont').children(':not(:first)').hide();
			$('#width3').text(gw());
			
			function gw(){
				
				var x = $('#x').width();
				var xx = $('#xx').width();

				var wD = $('#wD').width();
				var wwD = $('#wwD').width();
				var wwwD = $('#wwwD').width();
				
				var wT = $('#wT').width();
				var wwT = $('#wwT').width();
				var wwwT = $('#wwwT').width();
				var wwwp = $('#wwwp').width();
				

				var s = 'x:' + x + '\t';
				s = s + 'xx:' + xx + '\t';

				s = s + 'wD:' + wD + '\t';
				s = s + 'wwD:' + wwD + '\t';
				s = s + 'wwwD:' + wwwD + '\t';
				
				s = s + 'wT:' + wT + '\t';
				s = s + 'wwT:' + wwT + '\t';
				s = s + 'wwwT:' + wwwT + '\t';
				
				s = s + 'wwwp:' + wwwp;
				
				return s;
			}
		});
	</script>
</body>
</html>

 效果:

      

 因此,如果要获取宽高,应当先获取然后再隐藏,或者明确指定宽高,并保证其为实际大小。

  • 大小: 4.4 KB
分享到:
评论

相关推荐

    javascript获取隐藏元素(display:none)的高度和宽度的方法

    然而,当我们尝试获取一个CSS样式为display:none的元素的高度和宽度时,会发现常规的JavaScript方法无法直接获取这些尺寸值,因为display:none的元素没有物理尺寸。为了获得这些隐藏元素的尺寸信息,需要采用一些...

    javascript获取隐藏元素(display-none)的高度和宽度的方法.docx

    ### JavaScript 获取隐藏元素 (display: none) 的高度和宽度的方法 #### 一、问题背景与需求分析 在前端开发过程中,经常会遇到需要获取隐藏元素尺寸的情况。这些元素可能因为某些逻辑原因被设置为 `display: none...

    无法获取隐藏元素宽度和高度的解决方案

    无法获取隐藏元素宽度和高度的解决方案 在实际开发中,我们经常会遇到需要获取隐藏元素的宽高的情况,这里的隐藏元素是指display为none的元素。在默认情况下,获取隐藏元素的宽高是非常困难的,因为浏览器不会计算...

    html显示隐藏

    通过内联样式表,设置了`div`元素的基本样式,包括边框、高度和宽度等属性。值得注意的是,`display: none;`使得这两个`div`在页面加载时默认是隐藏的。 ```css #div1 { border: 1px #06F solid; height: 50px; ...

    js不能获取隐藏的div的宽度只能先显示后获取

    根据给出的文件信息,我们可以了解到,在JavaScript中直接获取一个隐藏的div元素的宽度是不可能的,因为CSS的display属性如果设置为none,则该元素不会被渲染,因而也就不会有宽度和高度。当div被设置为display: ...

    jQuery实现获取隐藏div高度的方法示例

    本文将详细讲解如何使用jQuery获取隐藏`div`元素的高度,并通过一个实例来展示具体实现方法。 首先,我们要理解CSS中的`display`属性。在HTML中,`div`是一个常见的块级元素,如果没有指定宽度和高度,它会根据内容...

    解决Echarts 显示隐藏后宽度高度变小的问题

    然而,在实际应用中,我们可能会遇到一些问题,比如ECharts图表在显示隐藏后,其宽度和高度会变小,导致图表无法正常显示。这个问题通常是由于ECharts在隐藏时无法正确获取容器元素的尺寸,而在重新显示时采用了默认...

    JQ 获取图片真实宽高

    - 使用CSS属性`display:none`隐藏图片,然后在需要显示时再计算尺寸,可以避免因图片加载影响页面渲染。 6. **预加载图片**: - 如果需要在图片显示之前获取尺寸,可以使用预加载技术。创建一个隐藏的`&lt;img&gt;`标签...

    html 点击按钮 实现页面内容地的隐藏与切换

    - `.shop_all`类定义了该区域的宽度、高度和溢出隐藏等属性。 - `.shop_all_a`类定义了实际内容的宽度、高度和背景色等。 ```css * { margin: 0px; padding: 0px; } a { text-decoration: none; } ul { list-...

    可自由隐藏框架的javascript代码

    这里的`id`属性用于JavaScript中的引用,`src`定义了要加载的网页地址,`width`和`height`则分别设定IFrame的宽度和高度。 接下来,我们可以使用JavaScript的DOM(文档对象模型)操作来控制这个IFrame的可见性。...

    js获取隐藏元素的宽高

    本文详细讲述了使用JavaScript(简称js)获取被CSS隐藏(例如display:none)元素宽高的问题及解决方案,并提供了一些实用的代码思路。 首先,问题产生的场景往往是在开发中,需要在不改变页面布局和用户视觉体验的...

    使用jQuery实现图片预加载和自动等比例缩放插件

    1. **获取图片和容器尺寸**:首先,我们需要获取图片的原始尺寸和容器的宽度或高度。可以通过`width()`和`height()`方法获取: ```javascript var imgWidth = $("#yourImage").width(); var imgHeight = $("#your...

    鼠标经过显示隐藏div

    接下来,通过CSS定义了`ipadTwo`元素的样式,包括宽度、高度、背景色等: ```css #ipadTwo { width: 380px; height: 190px; background: #FFF; border: dashed 1px #dddddd; opacity: 0.8; /*-moz-opacity: ...

    HTML与CSS面试题.docx

    可以使用display:none将元素隐藏,元素将彻底放弃位置,如同没有写它的标签一样;也可以使用visibility:hidden将元素隐藏,但是元素不放弃自己的位置。 7. 清除浮动的方式: 可以使用四种方法来清除浮动:① 让父...

    纯JS实现点击多图片切换效果

    2. CSS样式:为了美观,我们可以为图片容器添加一些基本样式,如设置宽度、高度和边距,以及图片的居中对齐等。 ```css #imageContainer { width: 100%; height: auto; position: relative; } #imageContainer ...

    js获取隐藏元素宽高的实现方法

    然而,当元素被隐藏时,例如通过CSS属性display: none或者visibility: hidden设置为隐藏,常规的获取元素尺寸的方法就无法得到正确的结果。本文将介绍如何使用JavaScript获取隐藏元素的宽度和高度。 首先,了解几个...

    js弹出模态效果div

    - `display:none`:默认隐藏此`&lt;div&gt;`元素,直到通过JavaScript显示它。 #### 三、实现细节解析 ##### 1. 动态调整尺寸 通过计算`window.screen.availWidth`和`document.body.scrollHeight`来确定模态框的宽度和...

Global site tag (gtag.js) - Google Analytics