【问题标题】:Set element height by the use of javascript variable使用 javascript 变量设置元素高度
【发布时间】:2017-01-15 21:17:47
【问题描述】:

我希望获取访问者视口的高度,然后使用该值来更改元素的高度。到目前为止,我已经使用 Javascript 将视口高度存储到变量中。然后我尝试选择元素并将“高度”样式更改为访问者视口高度,方法是使用 Javascript 变量作为输入。

我得到的错误是:
Uncaught TypeError: Cannot set property 'height' of undefined

我的 Javascript

var h = Math.max(document.documentElement.clientHeight || 0);
h = h + "px";
document.getElementsByTagName("form", "label").style.height = h;

【问题讨论】:

  • 好像找不到元素。
  • 阅读docgetElementsByTagName() 接受 one 字符串并返回一个 collection

标签: javascript html css responsive-design responsive


【解决方案1】:

要混合使用(未经请求的)CSS 解决方案,使用纯 CSS 很容易实现:
http://codepen.io/panchroma/pen/bgwpzz

CSS

form, label{height:100vh;}

【讨论】:

    【解决方案2】:
    var h = Math.max(document.documentElement.clientHeight || 0);
    h = h + "px";
    
    //here you have a collection of labels
    var lbl = document.getElementsByTagName("label");
      for(var i=0;i<lbl.length;i++){
      lbl[i].style.height = h;
    }
    

    【讨论】:

      【解决方案3】:

      正如 cmets 所说,它只需要 1 个字符串。 要改变标签的高度,你需要将它包装成一个div,或者p... 那么:

       var h = Math.max(document.documentElement.clientHeight || 0);
          h = h + "px";
      
          var forms = document.getElementsByTagName("form");
          for(var i=0;i<form.length;i++){
          forms[i].style.height = h;
          }
          var divs = document.getElementsByTagName("div");
          for(var j=0;j<divs.length;j++){
          divs[j].style.height = h;
          }
      

      【讨论】:

      • 为了清楚起见,“测试”在这个 for 循环中代表什么。请记住,我很少使用 Javascript。
      • @Mark Amery 你是对的。有没有办法改变标签的高度?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      相关资源
      最近更新 更多