【发布时间】:2017-01-04 11:23:06
【问题描述】:
我有一个带有 display:none 的 div(移动优先方法):
#my_div {
display: none;
color: red;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
}
我使用一些媒体查询(在 css 之后)来显示这个 div,并带有一些填充和字体大小:
/* Between 600px and 649px */
@media (min-width: 600px) and (max-width: 649px) {
#my_div {
display: inline-block;
padding-top: 26px;
padding-left: 15px;
font-size: 18px;
}
}
/* Between 650px and 699px */
@media (min-width:650px) and (max-width:699px) {
#my_div {
display: inline-block;
padding-top: 24px;
padding-left: 20px;
font-size: 20px;
}
}
/* Between 700px and 914px */
@media (min-width: 700px) and (max-width: 914px) {
#my_div {
display: inline-block;
padding-top: 22px;
padding-left: 35px;
font-size: 22px;
}
}
在 699 像素之前一切正常。未应用第三个媒体查询并且不显示 div。
如果我使用以下媒体查询,则会显示 div,但不会应用 @media (min-width: 700px)。 @media (min-width:650px) 已应用:
@media (min-width: 600px) {
#my_div {
display: inline-block;
padding-top: 26px;
padding-left: 15px;
font-size: 18px;
}
}
@media (min-width:650px) {
#my_div {
display: inline-block;
padding-top: 24px;
padding-left: 20px;
font-size: 20px;
}
}
@media (min-width: 700px) {
#my_div {
display: inline-block;
padding-top: 22px;
padding-left: 35px;
font-size: 22px;
}
}
通过使用 chrome 检查器,我可以看到超过 700px 它应用了规则:
#my_div {
display: none;
...
}
编辑
我又添加了一个媒体查询
#my_div {
display: none;
color: red;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
}
@media (min-width: 600px) {
#my_div {
display: inline-block;
padding-top: 26px;
padding-left: 15px;
font-size: 18px;
}
}
@media (min-width:650px) {
#my_div {
display: inline-block;
padding-top: 24px;
padding-left: 20px;
font-size: 20px;
}
}
@media (min-width: 768px) {
#my_div {
display: none; /* it doesn't work, also with !important */
}
}
@media (min-width: 915px) {
#my_div {
display: inline-block;
padding-top: 22px;
padding-left: 35px;
font-size: 22px;
}
}
唯一没有应用的规则是@media (min-width: 768px)。
在我的 CSS 中,没有其他规则会影响 my_div div 的显示。我正在使用 Bootstrap 3。
编辑 2
我将 Bootstrap hidden-sm 类添加到 div my_div:
<div id="my_div" class="hidden-sm"><strong>My slogan</strong></div>
这样,div 不会显示在 768px 和 991px 之间,但我会从 915px 再次显示它。
解决方案
我更新了 AngelosCharalis 的 JSfiddle,通过复制和粘贴我的代码,我发现了一个不可见的点字符。现在可以了。
【问题讨论】:
-
不需要
max-width查询,只使用min-width来做你想做的事。将您的代码移至JSFiddle,这对我来说似乎效果很好。我刚刚删除了max-width查询,您确定您的代码中没有其他部分会破坏这种样式吗? -
@AngelosChalaris:在您的 JSFiddle 中,似乎总是显示 div。仅使用
min-width无论如何都不会应用@media (min-width: 700px) -
它并不总是显示,如果你缩小结果区域,它最终会消失。它确实显示了超过 700 像素... - 为超过 700 像素添加了
color:blue以使其清晰:jsfiddle.net/ero1k9n3/2 -
再次,用彩色展示它:jsfiddle.net/ero1k9n3/3 一切正常!
-
@AngelosChalaris:是的。 jsfiddle 示例有效,我更改了所有媒体查询的背景,但在我的代码中问题仍然存在。我会尝试其他检查员。
标签: css twitter-bootstrap-3 media-queries