【发布时间】:2016-02-08 00:38:09
【问题描述】:
我正在设计一个用于显示文章的网页。主要内容是文章正文,但也有相关文章的链接列表。我希望列表通常显示在文章的一侧,但在以下任一情况下显示在文章下方:
- 视口
- 文章内容广泛,例如一张大桌子
我通过以下 CSS 实现了这一点...
.article-sidebar {
text-align: left;
}
@media (min-width: 992px) {
.article-sidebar {
float: right;
max-width: 28%;
}
}
@media (max-width: 991px) {
.article-sidebar {
padding-top: 46px;
border-top: 1px solid #eeeeee;
padding-left: 5%;
padding-right: 5%;
}
}
.article-sidebar-bottom {
text-align: left;
padding-top: 46px;
border-top: 1px solid #eeeeee;
padding-left: 5%;
padding-right: 5%;
}
...加上一些 JavaScript 可以判断文章是否有任何“宽子”,如果有,则删除“article-sidebar”类并添加“article-sidebar-bottom”类。
但是,我不喜欢 >= 991px .article-sidebar 和 .article-sidebar-bottom 之间的所有样式重复。我知道,如果同一类的不同媒体查询之间存在重复,我可以按照here 的解释将它们组合起来,如果不涉及媒体查询,我可以用逗号分隔 CSS 选择器,但有什么方法可以避免重复在这种情况下我自己?
【问题讨论】:
-
您必须重新构建您的标记,以增加您可以在不同屏幕尺寸之间共享的数量。在
.article-sidebar和.article-sidebar-bottom类之间重复样式有点奇怪。如果您想在侧边栏上使用该样式,则应仅将其应用于一个类。 -
@DerekPeterson - 谢谢,我认为重组确实是要走的路。我已经这样做并发布了我自己的答案。
-
没问题!很高兴你能解决这个问题。
标签: css media-queries