有没有办法使用 Materialize.css 只指定一次背景颜色?
Is there a way to specify the background color only once using Materialize.css?
我将以下 HTML 与 Materialize 结合使用,试图使包含某些内容的卡片具有深色背景:
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="card grey darken-4 white-text">
<h6>Title</h6>
<ul class="collection">
<li class="collection-item">
Item 1
</li>
<li class="collection-item">
Item 2
</li>
<li class="collection-item">
Item 3
</li>
</ul>
</div>
然而,结果是这样的:
如您所见,文本不可读,因为文本颜色由 <ul>
项目继承,但背景颜色不是。我不确定是我做错了什么,还是这是 Materialise 的限制。
我让它工作的唯一方法是明确指定每个子元素的背景颜色,如下所示:
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="card grey darken-4 white-text">
<h6>Title</h6>
<ul class="collection grey darken-4">
<li class="collection-item grey darken-4">
Item 1
</li>
<li class="collection-item grey darken-4">
Item 2
</li>
<li class="collection-item grey darken-4">
Item 3
</li>
</ul>
</div>
这可以正确呈现,但很丑陋,并且不能很好地与我们的模板系统配合使用。有没有办法只指定一次背景颜色?
为什么不直接使用 CSS 并设置 .collection-item
class 的样式?
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<style>
.card > ul > .collection-item {
background-color: #212121 !important;
}
</style>
<div class="card grey darken-4 white-text">
<h6>Title</h6>
<ul class="collection">
<li class="collection-item">
Item 1
</li>
<li class="collection-item">
Item 2
</li>
<li class="collection-item">
Item 3
</li>
</ul>
</div>
实际class,从materialize.css是:
.collection .collection-item {
background-color: #fff;
line-height: 1.5rem;
padding: 10px 20px;
margin: 0;
border-bottom: 1px solid #e0e0e0;
}
您可以通过检查元素来检查这一点。有很多解决方法可以修改您的要求。您可以像这样使用内置实用程序颜色 classes:
.collection .collection-item {
background-color: inherit;
}
然后:
<ul class="collection grey darken-4">
<li class="collection-item">
Item 1
</li>
<li class="collection-item">
Item 2
</li>
<li class="collection-item">
Item 3
</li>
</ul>
在 ul 上声明一次 bg 颜色,然后全局所有集合 li 也将采用此 bg 颜色。
我将以下 HTML 与 Materialize 结合使用,试图使包含某些内容的卡片具有深色背景:
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="card grey darken-4 white-text">
<h6>Title</h6>
<ul class="collection">
<li class="collection-item">
Item 1
</li>
<li class="collection-item">
Item 2
</li>
<li class="collection-item">
Item 3
</li>
</ul>
</div>
然而,结果是这样的:
如您所见,文本不可读,因为文本颜色由 <ul>
项目继承,但背景颜色不是。我不确定是我做错了什么,还是这是 Materialise 的限制。
我让它工作的唯一方法是明确指定每个子元素的背景颜色,如下所示:
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="card grey darken-4 white-text">
<h6>Title</h6>
<ul class="collection grey darken-4">
<li class="collection-item grey darken-4">
Item 1
</li>
<li class="collection-item grey darken-4">
Item 2
</li>
<li class="collection-item grey darken-4">
Item 3
</li>
</ul>
</div>
这可以正确呈现,但很丑陋,并且不能很好地与我们的模板系统配合使用。有没有办法只指定一次背景颜色?
为什么不直接使用 CSS 并设置 .collection-item
class 的样式?
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<style>
.card > ul > .collection-item {
background-color: #212121 !important;
}
</style>
<div class="card grey darken-4 white-text">
<h6>Title</h6>
<ul class="collection">
<li class="collection-item">
Item 1
</li>
<li class="collection-item">
Item 2
</li>
<li class="collection-item">
Item 3
</li>
</ul>
</div>
实际class,从materialize.css是:
.collection .collection-item {
background-color: #fff;
line-height: 1.5rem;
padding: 10px 20px;
margin: 0;
border-bottom: 1px solid #e0e0e0;
}
您可以通过检查元素来检查这一点。有很多解决方法可以修改您的要求。您可以像这样使用内置实用程序颜色 classes:
.collection .collection-item {
background-color: inherit;
}
然后:
<ul class="collection grey darken-4">
<li class="collection-item">
Item 1
</li>
<li class="collection-item">
Item 2
</li>
<li class="collection-item">
Item 3
</li>
</ul>
在 ul 上声明一次 bg 颜色,然后全局所有集合 li 也将采用此 bg 颜色。