用js控制css属性

本文详细探讨了使用JavaScript控制CSS属性的不同情况,包括直接修改行内样式与通过对象读取计算后再赋值的方法,并提供了具体的代码示例。

在用js控制css属性时,行内css属性可以任意控制,但若是在<style></style>中写的css属性,均不能用alert读取,但是赋值却有几种现象,

第一种:无法读取,能直接赋值

如下:

<!DOCTYPE html>
<head>
<title>新建网页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content=" "/>
<style>
	div{
		width:300px;
		height:300px;
		border:1px solid blue;
	}	
</style>
</head>
<body>
	<div>
                <p>
			12345
		</p>
	</div>
</body>
<script>
	var div=document.getElementsByTagName('div')[0];
	alert(div.style.width);
	div.style.width='600px';
	</script>
</html>   

第二种:无法进行计算后的赋值,

div.style.width=parseInt(div.style.width)+100+'px';

这行代码不起作用

解决方式:这种情况下就要用到obj.currentStyle和getComputedStyle()这两个函数来先读取到width的值,然后进行计算,再赋值。

<script>
function getStyle(obj,attr)
{
	return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj,null)[attr];
}
function t1()
{
	var div=document.getElementsByTagName('div')[0];
	div.style.width=parseInt(getStyle(div,'width'))+5+'px';//两个方法获取对象为只读
}
</script>

 

第三种:先直接赋值,然后进行计算后赋值,这样能够两次都赋值

即:

<script>
	var div=document.getElementsByTagName('div')[0];
	alert(div.style.width);
	div.style.width='600px';
	alert('。。。');
	div.style.width=parseInt(div.style.width)+100+'px';
</script>

这是因为在前一次赋值计算中:div.style.width='600px';已经给他赋了行内css值,所以后面一个进行计算后赋值时可以读取到并赋值。

已解决~~~

转载于:https://www.cnblogs.com/sunshinewei/p/4739572.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值