html - 无法应用显示 :block to div set to display:none

标签 html css responsive-design

我有一个问题,我正在尝试构建一个站点,以便当它处于桌面模式时,将包含一个 img 元素的特定 div 设置为显示:无

当屏幕尺寸达到 450px 或更小时,我想将 div 设置为 display:block 并显示它。

但是,我在这样做时遇到了问题,因为 display:block 从未得到应用。我可以做反向 (display:block to display:none) 。我猜我的问题是我正在尝试将样式应用于页面上不存在的元素,如果是这种情况,我可以隐藏它,这样它就不会占用空间并显示当屏幕小于 450px 时?

非常感谢任何帮助。

这是我的CSS

#toplogo{
display: none;
margin-left: auto;
margin-right: auto;
}

这是我的媒体查询

@media screen and (max-width: 450px){
#toplogo{
display: block;
}
}

这是HTML

<div id="toplogo">
     <img src="/images/myimage.png"/>
</div>

非常感谢任何帮助。

最佳答案

您的代码现在看起来还不错。

但我建议采用移动优先的方法,因此全局样式针对的是移动设备,后来针对更大的屏幕进行了更改。一定要检查你用你的 css 媒体查询改变了什么,并检查你的代码顺序,这样你就不会在稍后的“全局”css 代码中用你的样式覆盖媒体查询

如果我的媒体查询将被放置在 css 文件的顶部,下面的这个片段将不会按预期工作,因为它稍后会被覆盖 - example of badly organized css media query

工作示例

/* mobile first approach */
#toplogo {
    display: block;
    margin-left: auto;
    margin-right: auto;
    background-color: blue;
}

.hey {
    display: none
}
@media screen and (min-width: 450px){
    /* hide block when window width is at least 450px */
    #toplogo {
        display: none;
    }
    .hey {
        display: block
   }
}
<div id="toplogo">
    <img src="http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png">
</div>

<div class="hey">Hey, I'm bigger than 450px!</div>

http://jsfiddle.net/gfuunyak/4/

关于html - 无法应用显示 :block to div set to display:none,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838344/

相关文章:

css - 响应字体大小 : Which values are appropriate?

css - 网站在桌面上很好,但在移动设备上非常小

javascript - 从 ul li jquery 中获取选定的项目

Javascript rowIndex 方法不起作用

javascript - 使用 Symfony 向输入发送值

css - 我怎样才能使这个背景图片适合我的页面底部

css - 以中心为基线的 CSS 中的左值?

javascript - 验证动态单选按钮 jQuery

javascript - 准确设置文本位置

javascript - jQuery 根据内容高度在加载时切换 div 类