设置值为空时的疑问

来源:4-1 编程挑战

冷冰风

2015-04-28 08:42

<script type="text/javascript">
//定义"改变颜色"的函数
  var Body = document.getElementById("txt");
  function changeColor() {
    Body.style.color = "red";
    Body.style.backgroundColor = "#ccc";
  }
//定义"改变宽高"的函数
  function changeWidth() {
      Body.style.width = "400px";
      Body.style.height = "300px";
  }
//定义"隐藏内容"的函数
  function changeDpyNone() {
      Body.style.display = "none";
  }
//定义"显示内容"的函数
  function changeDpyBlock() {
      Body.style.display = "block";
  }
//定义"取消设置"的函数
 function EscChange() {
    var cfm = confirm("是否恢复默认设置?");
    if (cfm == true) {
        Body.style.color = "";
        Body.style.backgroundColor = "";
        Body.style.width = "";
        Body.style.height = "";
        Body.style.display = "";
    }
 }
  </script>

对于一个已申明宽高样式的DIV,在以下两种情况下通过设置宽高值为“ ”(恢复默认)的疑问:

  1. 再次修改DIV的宽高后设置宽高值为:“ ”;

  2. 直接设置宽高值为:“ ”;

对于以上操作后,DIV的宽高分别为样式申明中的宽高,还是为根据DIV内容自适应的宽高呢?并说明为什么会表现这样!


PS:上述代码为我练习中所写,实现任务预期!我自己在练习中做此实验,恢复的为样式申明中的宽高,但我不明白为什么会这样,为什么不是恢复为根据内容自适应!

写回答 关注

3回答

  • 康振宁
    2015-04-29 10:50:57
      Body.style.color = "";
            Body.style.backgroundColor = "";
            Body.style.width = "";
            Body.style.height = "";
            Body.style.display = "";

    你这么写是又把CSS样式重新写了一遍,也就是,相当于一个变量var  a = 4; 然后你在给这个变量重新赋值a=5;那么现在再输出这个a的值的话,那么就是5。这个和设置样式是一样的,这个取消是把所有的样式又设置为空了,所以你不能恢复

    冷冰风 回复康振宁

    好吧,谢谢你!我知道什么叫赋值,但感觉从开始我们就互相没理解对方的意思,算了,这个问题就先放在一边吧,说不定以后就明白了!

    2015-04-29 19:14:29

    共 3 条回复 >

  • 冷冰风
    2015-04-28 10:19:56

    我不是想恢复到自适应,而是理解上认为应该这样,我是不明白,我设置为空值,为什么恢复到的不是系统自己默认的而是先前css设置的!

  • 康振宁
    2015-04-28 10:16:43

    你要恢复到自适应,你可以写auto,这个就和CSS中的设置样式一样,你可以把宽高设置成auto就可以了

    冷冰风

    我不是想恢复到自适应,而是理解上认为应该这样,我是不明白,我设置为空值,为什么恢复到的不是系统自己默认的而是先前css设置的!

    2015-04-28 10:20:17

    共 1 条回复 >

JavaScript入门篇

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

742051 学习 · 9869 问题

查看课程

相似问题