如何通过js给div的style动态赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过js给div的style动态赋值相关的知识,希望对你有一定的参考价值。

比方说,div1是动态读取数据,在得到div1的高度之后直接给div2的高度赋值。

需要准备的材料分别有:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html,填充问题基础代码。

2、在index.html中的<script>标签,输入js代码:$('#div2').height($('#div1').height());。

3、浏览器运行index.html页面,此时div2的高度被设置成和div1一致了。

参考技术A 你可以把中间层的高度设为 auto,在 div 的高度为 auto 的时候,用 offsetHeight 来得到真实高度(###px)

document.getElementById('div2').style.height = document.getElementById('div1').offsetHeight + 'px';
参考技术B <div id="div1">
<p>.....</p>
</div>
因为是动态数据,所以#div1的高度是auto,无法获取到具体值。
var div1=document.getElementById("div1");
alert(div1.style.height); //没有值

建议从css上改进。
比如给中间的div设置css height:500px;overflow:auto;这样就能固定高度,多出的内容用滚动条显示。
或者让尾部div相对中间的div定位。追问

相对中间的位置定位写好了,但是中间的高度无法确实。不想用滚动条显示,想在读出内容之后把中间层的高度显示出来,然后赋值到尾部那一层的top里面。但是不知道该怎么写这个代码。或者就是中间层读出数据之后,修改中间层的高度。然后尾部相对定位。就是不明白,怎么样对能在读出数据,中间层有了高度之后再重写一次高度让尾部能得到这个值。

追答

网站整体的框架我是不建议用position来做的。
我一般都是用margin排的
#header,#text,#footer width:900px;margin:10px auto;

你可以看一下我最近的一个练习

当时给忘了:clientHeight可以返回实际值。
#header,#text,#footer position:absolute;
#header height:100px;
#text top:100px;

function getStyle(obj,cn)
if (window.getComputedStyle) //W3C DOM
return window.getComputedStyle(obj,null)[cn];
else if (obj.currentStyle) //IE
return obj.currentStyle[cn];

return "";

var header=document.getElementById("header");
var text=document.getElementById("text");
var footer=document.getElementById("footer");
footer.style.top=getStyle(header,clientHeight)+getStyle(text,clientHeight);

参考资料:http://www.hk1229.cn/lab/tjnews/index.php

本回答被提问者采纳
参考技术C 如上面div,请问,如何用js取得浏览器的高度然后把值赋 style 中的 height winHeight = document.body.clientHeight; //通过深入Document内部对body进行追问

你这答案没发全吧。怎么看不明白。
我现在有三个层,头,中间部分,尾,用的都是CSS的相对定位,然后给了中间层一个高度,但是如果中间层信息多了之后,尾层不会跟着中间层的高度自动下调。

如何用JS给div添加样式

用JS给div添加样式是通过js操作css来实现的。

    用js方法找到div的dom对象

    通过js操作css的style属性来改变div的样式

具体举例如下:

定义div:<div id="myDiv" style="color:red">改变样式测试</div>

编写js代码:

var color = document.getElementById("myDiv").style.color;

if (color == "red")

   document.getElementById("myDiv").style.color="black";

else

   document.getElementById("myDiv").style.color="red";

执行js代码后,div原来是红色会变成黑色,原来是别的颜色会变成红色

参考技术A <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>box</title>
<script>
window.onload = function()
    var mydiv = document.getElementById("box");
    mydiv.style.height = "100";
    mydiv.style.border = "1px solid #000"

</script>
</head>

<body>
<div id="box">
</div>
</body>
</html>

以上是关于如何通过js给div的style动态赋值的主要内容,如果未能解决你的问题,请参考以下文章

js获取背景图片宽高比后根据浏览器宽度动态赋值div.style.height

wpf中 后台怎么动态给控件的style赋值

html5 怎么动态创建div并赋值

js 在IOS系统微信浏览器内如何动态给title赋值

动态生成的HTML标签样式问题

js给数组赋值