css - 绝对定位和媒体查询

标签 css layout css-position media-queries

我正在处理需要响应的非常基本的单页布局。它包含 一张大背景图片和 2-3 个绝对定位在它周围的 div。 http://www.reversl.net/demo/我使用绝对定位的原因是因为背景图像的高度需要变化,但文本框需要始终与图像底部保持相同的距离。

我还需要在页面右下角放置一个 Logo 。在桌面设备上查看时一切正常。但在智能手机上,由于屏幕较小,我需要使用媒体查询将 Logo 定位在文本下方。现在问题来了……因为文本 div 是绝对定位的…… Logo 在较小的屏幕上隐藏在它后面。我最初的想法是给 Logo 一个从顶部开始的绝对位置,以便它始终显示在 320 像素宽及以下屏幕尺寸的文本框下方。但是,文本框的高度需要变化,所以我不能这样做。

我的问题是...如何放置 Logo ,使其始终显示在 320 像素宽及以下屏幕尺寸的文本框下方(无论文本框高度如何)?

#bg {
max-width: 100%;
margin: 0;
padding: 0;
position: relative;
}

#title {
margin: 0;
padding: 0;
color: #f0f0f0;
background: #333;
margin: 0;
padding: .5em 1em;
width: 250px;
position: absolute;
top: -2%;
text-align: center;
}

#content {
background: #333;
width: 250px;
position: absolute;
top: 85%;
padding: .5em 1em;
color: #888;
text-align: center;
border: 1px solid #444;
}

footer {
margin: 0;
padding: 0;
}

.logo {
float: right;
width: 50px;
height: 25px;
border: 1px solid #444;
text-align: center;
padding: .5em;
color: #666;
}

/* Smartphones (portrait) ----------- */
@media only screen 
and (max-width : 320px) {

#title {top: -17%;line-height: 1;}
}

Desired Layout on mobile

最佳答案

我相信您现在已经明白了这一点 - 但有时可能有用的一种方法是在 HTML 中两次放置相同的 Logo ,并根据宽度显示或隐藏您想要的 Logo 。我发现这更易于维护,而且很明显,如果图像具有相同的 URL,那么开销就会很小。绝对定位并不好玩。

// mobile
@media only screen and (max-width : 319px) 
{
   .logo.right-justified 
   {
       display: none;     // hide right logo
   }
}

// desktop
@media only screen and (min-width : 320px) 
{
   .logo.underneath
   {
       display: none;     // hide bottom logo
   }
}

关于css - 绝对定位和媒体查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11778064/

相关文章:

css - CSS hover 和 IE8 的问题

html - 两个容器 div 导致侧边栏无法正确 float

Android - 禁用可扩展列表中一组的 onClick 突出显示?

html - 使图像出现在悬停时

php - 仅使用 e 关键字发布图像

html - 高级 CSS : top and bottom with flexible centre

android - 在 RelativeLayout 上设置边距在 Kindle Fire 上不起作用

Android fragment XML 布局问题

javascript - 滚动时 div 在固定 div 后面

css - 在相对元素中嵌套绝对元素 Firefox