绝对元素在纵向模式下无响应 phone
Absolute element not responsive in portrait mode phone
我有一个绝对 DIV 位于页面顶部。我让它具有响应性,因此它在较小的设备上变得更小并且它似乎可以工作(在笔记本电脑和手机的横向模式下)除了手机上的纵向模式(我在 iPhone 和三星上测试过)。我不知道它可能是什么。它似乎不听@media 查询,只有当我在@media 查询之外更改实际 div 的宽度和高度时,它才会变小。
您可以在此处查看 div:http://f4g.marilnu149.149.axc.nl/index.html(左上角的徽标)
CSS:(我正在使用骨架)
.logo {
position: absolute;
margin-top: 0;
margin-left: 50px;
width: 10em;
height: 10em;
background: #201616; /* Old browsers */
background: -moz-linear-gradient(top, #201616 0%, #7c1b1b 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, #201616 0%,#7c1b1b 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to bottom, #201616 0%,#7c1b1b 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#201616', endColorstr='#7c1b1b',GradientType=0 ); /* IE6-9 */
}
.logo img {
max-width: 100%;
}
/* Larger than mobile */
@media (min-width: 400px) {
.logo {
width: 4em;
height: 4em;
}
}
/* Larger than phablet (also point when grid becomes active) */
@media (min-width: 550px) {
.logo {
width: 4.5em;
height: 4.5em;
}
}
/* Larger than tablet */
@media (min-width: 750px) {
.logo {
width: 5em;
height: 5em;
}
}
/* Larger than desktop */
@media (min-width: 1000px) {
.logo {
width: 8em;
height: 8em;
}
}
/* Larger than Desktop HD */
@media (min-width: 1200px) {
.logo {
width: 10em;
height: 10em;
}
}
HTML:
<div class="logo">
<img src="images/logo.png" />
</div>
提前感谢任何可以提供帮助的人!
据我所知,您没有为小于 400px 的设备设置任何@media
。您所有的 @media
查询都说 min-width
,因此申请宽度 大于 的设备。因此,对于小于 400 像素的设备,它在您的主要 .logo
定义中使用 width: 10em
的标准值。
因此,一种选择是简单地将您的主要定义更改为小于 10em 的值,例如3em:
.logo {
position: absolute;
margin-top: 0;
margin-left: 50px;
width: 3em;
height: 3em;
…
}
我有一个绝对 DIV 位于页面顶部。我让它具有响应性,因此它在较小的设备上变得更小并且它似乎可以工作(在笔记本电脑和手机的横向模式下)除了手机上的纵向模式(我在 iPhone 和三星上测试过)。我不知道它可能是什么。它似乎不听@media 查询,只有当我在@media 查询之外更改实际 div 的宽度和高度时,它才会变小。
您可以在此处查看 div:http://f4g.marilnu149.149.axc.nl/index.html(左上角的徽标)
CSS:(我正在使用骨架)
.logo {
position: absolute;
margin-top: 0;
margin-left: 50px;
width: 10em;
height: 10em;
background: #201616; /* Old browsers */
background: -moz-linear-gradient(top, #201616 0%, #7c1b1b 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, #201616 0%,#7c1b1b 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to bottom, #201616 0%,#7c1b1b 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#201616', endColorstr='#7c1b1b',GradientType=0 ); /* IE6-9 */
}
.logo img {
max-width: 100%;
}
/* Larger than mobile */
@media (min-width: 400px) {
.logo {
width: 4em;
height: 4em;
}
}
/* Larger than phablet (also point when grid becomes active) */
@media (min-width: 550px) {
.logo {
width: 4.5em;
height: 4.5em;
}
}
/* Larger than tablet */
@media (min-width: 750px) {
.logo {
width: 5em;
height: 5em;
}
}
/* Larger than desktop */
@media (min-width: 1000px) {
.logo {
width: 8em;
height: 8em;
}
}
/* Larger than Desktop HD */
@media (min-width: 1200px) {
.logo {
width: 10em;
height: 10em;
}
}
HTML:
<div class="logo">
<img src="images/logo.png" />
</div>
提前感谢任何可以提供帮助的人!
据我所知,您没有为小于 400px 的设备设置任何@media
。您所有的 @media
查询都说 min-width
,因此申请宽度 大于 的设备。因此,对于小于 400 像素的设备,它在您的主要 .logo
定义中使用 width: 10em
的标准值。
因此,一种选择是简单地将您的主要定义更改为小于 10em 的值,例如3em:
.logo {
position: absolute;
margin-top: 0;
margin-left: 50px;
width: 3em;
height: 3em;
…
}