我想将元素的height
设置为window.innerheight
,但我必须在CSS中进行此操作,因为不知何故我无法访问该元素以使用javascript来更改其样式。
有没有办法做到这一点?像在javascript中更改CSS类一样?
我尝试过:
document.getElementById('root').style.setProperty('--view-height', window.innerHeight +'px');
和CSS:
.menu {
height: var(--view-height) !important;
}
它可以工作,但是较旧的浏览器不支持CSS Variables,所以我不能使用它,但是我想要类似的东西。
编辑: 有很多答案,但他们都使用javascript,我说我不能使用js来设置元素样式!我只想按CSS类样式进行操作
答案 0 :(得分:0)
在javascript中设置height
,而不要使用variables
document.getElementById('root').style.height=window.innerHeight +'px';
请参阅示例:
document.getElementById('root').style.height=window.innerHeight +'px';
#root{
background-color:red;
}
<div id="root"></div>
要进行编辑,请不要使用js,请使用height:100vh;
:
#root{
height:100vh;
background-color:red;
}
<div id="root"></div>
答案 1 :(得分:0)
答案 2 :(得分:0)
也许改用正确的CSS:
window.innerHeight +'px'
的高度与使用100vh
的高度相同。单位vh
表示“视口高度”,而100vh
表示内部窗口的完整高度。
请参阅:https://developer.mozilla.org/en-US/docs/Web/CSS/length#Viewport-percentage_lengths
答案 3 :(得分:0)
使用vh
单元是执行此操作的正确方法。(尽管Mahboobeh Mohammadi表示它与ios不兼容)
height: 100vh;
是视图的整个高度。
答案 4 :(得分:-1)
对于普通Js
function addClassById (_id,_class) {
document.getElementById(_id).classList.add(_class);
}
function removeClassById (_id,_class) {
document.getElementById(_id).classList.remove(_class);
}
addClassById("root","newClass")
我建议您使用JQUERY,它非常易于使用。 将此CDN链接放在您的head标签上,然后使用它。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
//This is for change css
$("#root").css({
"background-color": "yellow",
"font-size": "200%"
});
// This is how to add class
$("#root").addClass('newClass');
// This is how to remove class
$("#root").removeClass('newClass')
希望对您有帮助。