Javascript 如何操作(class1+;class2)之类的类
我从来没有像.class1+.class2{}这样的类声明。我需要使用Js操作Javascript 如何操作(class1+;class2)之类的类,javascript,html,css,Javascript,Html,Css,我从来没有像.class1+.class2{}这样的类声明。我需要使用Js操作padding top属性 CSS .sticky + .content { padding-top: 150px; } var myElements = document.querySelectorAll(".content"+".sticky"); for (var i = 0; i < myElements.length; i++) { myElements[i].style.padd
padding top
属性
CSS
.sticky + .content {
padding-top: 150px;
}
var myElements = document.querySelectorAll(".content"+".sticky");
for (var i = 0; i < myElements.length; i++) {
myElements[i].style.paddingTop = -150 +"px";;
myElements[i].style.sticky = -150 +"px";;
}
下面是我在Js中尝试的内容。我想让那填充顶部-150px
。我需要能够动态地改变它。它不起作用。我的错在哪里
JS
.sticky + .content {
padding-top: 150px;
}
var myElements = document.querySelectorAll(".content"+".sticky");
for (var i = 0; i < myElements.length; i++) {
myElements[i].style.paddingTop = -150 +"px";;
myElements[i].style.sticky = -150 +"px";;
}
var myElements=document.queryselectoral(“.content”+”.sticky”);
对于(var i=0;i
使用文字+
而不是串联字符串:
.content + .sticky
这会选择同级-您可能只需要一个简单的多类选择器字符串,在这种情况下,您可以使用逗号
.content, .sticky
仅当元素同时具有以下两个类时,才能使用空格使规则生效:
.sticky.content{
填充顶部:150px;
}
对于JS,您也可以这样做:
var myElements = document.querySelectorAll(".content.sticky");
如果内容是sticky的直接子级,请使用:
.sticky > .content
.sticky + .content
或者,如果它只是一个孩子或孙子,使用
.sticky .content
如果内容是sticky的下一个同级,请使用:
.sticky > .content
.sticky + .content
CSS中的
a+b
选择器意味着HTML DOM中元素a
后面的元素b
。如果这真的是您想要的,那么您的JS中就会出现以下错误:
var myElements=document.queryselectoral(“.content”+”.sticky”);
”.content“+”.sticky“
的计算结果为”.content.sticky“
,这意味着一个元素应该同时具有.content
和.sticky
尝试使用以下方法:
var myElements=document.queryselectoral(“.content+.sticky”);
此外,CSS中的加号选择器是不可交换的,因此.content+.sticky
(内容元素紧跟着粘滞元素)和.sticky+.content
(粘滞元素紧跟着内容元素)是不同的选择器。确保在CSS和JS中使用相同的选择器
但是,如果要匹配同时具有
.content
和.sticky
两个类的单个元素,则错误在CSS中
在这种情况下,您需要将.sticky+.content{…}
更改为.sticky.content{…}
此外,该行无效: myElements[i].style.sticky=-150+“px”;; CSS3中没有
sticky
属性
也许您想在元素中添加一个sticky
类?可以这样做:
myElements[i].classList.add('sticky');
@Kobe你能给我举个代码的例子吗?如果你输入“-150px”
而不是-150+“px”
,和.content.sticky“
而不是”。content“+”。sticky”
你想用myElements[i]做什么?style.sticky=-150+“px”
这里?内容和粘性类在不同的组件上,还是内容是粘性的子组件?