[英]How to change a property of a CSS class dynamically using javascript (no JQuery)
[英]how to check if a class having a css property and change other class' css property based on that class without "jquery"
就像在这个例子中,如果侧边栏类的width:0;
然后将内容类的margin-left
从60px
为0
这里是参考代码:
.sidebar{ width: 0px; } .sidebar-open{ width: 60px; } .content{ margin-left: 60px; }
<div class="wrapper"> <div class="main d-flex"> <div class="sidebar "> <ul> <li>Home</li> <li>Dashboard</li> <li>Contact Us</li> <li>About us</li> </ul> </div> <div class="content flex-fill"></div> </div> </div>
一般来说,您可以使用 CSS 选择器的特殊性(这里和这里很好读),以便根据标记结构、屏幕大小等条件覆盖某些样式。
特别是对于您的示例,您可以利用content
元素就在 DOM 中的sidebar
元素之后这一事实,并使用+
CSS 运算符来定位与选择器的第二部分(在+
)匹配的元素如果它紧跟在与第一部分匹配的元素之后出现。 像这样:
.sidebar + .content {
margin-left: 0;
}
在<style>
标签中添加此规则将应用margin-left: 0;
to .content
仅当.sidebar
在它之前呈现时,并且作为更具体的选择器,它将覆盖初始.content
声明。 您将在开发者工具的 Elements 面板中看到margin-left: 60px;
规则被划掉。
此外,要仅在侧边栏打开时应用边距,您可以使用相同的技术,如下所示:
.sidebar.sidebar-open + .content {
margin-left: 60px;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.