参考代码:http://codepen.io/anon/pen/VvdyQb?editors=010
当我放大/缩小时,我很难理解视口的宽度如何变化。我有这些媒体查询,当em中的宽度发生变化时会触发。
我的问题: 当缩放时,为什么视口会改变?是否与字体大小增加/减少有关? em用于父容器的font-size。如果body元素默认为16px的字体大小,那么1em = 16像素。当我缩放时,这会如何变化? 1em突然不再等于16px但是更大/更小的东西取决于我放大了多少?我假设文本大小影响父容器的大小,但我无法理解这将如何影响页面的整体宽度。如何宽度与缩放和em相关?当我放大时看起来页面的宽度变小了,当缩小时,页面的宽度变大了吗?
html,
body {
background-color: lightblue;
}
div#nav {
position: relative;
width: 50%;
background: white;
box-shadow: 1px 1px 15px #888888;
}
div#logo {
border-right-style: solid;
border-width: 1px;
border-color: rgba(0, 0, 0, 0.15);
font-family: 'Myriad Pro Regular';
font-weight: normal;
color: #1E3264;
font-size: 2em;
}
@media (min-width: 50em) and (max-width: 99em) {
#logo {
background: orange;
font-size: 0px;
}
}
@media (min-width: 100em) and (max-width: 149em) {
#logo {
display: none;
}
}
@media (min-width: 150em) {
#logo {
display: initial;
}
<div id="nav">
<div id="logo">TEST</div>
</div>
答案 0 :(得分:0)
您使用的样式或媒体查询存在严重缺陷。 首先,您必须对媒体查询有一个非常清晰的概念。
min-width
min-width表示容器宽度是否至少等于此宽度或更大。
在响应式设计中,您可以根据要运行查询的最大范围进行设计。所以max-width
是这种情况的正确选择。 min-width
基本上用于间隔。如果您想在20em
和30em
之间专门运行查询,那么您将使用max-width:30em and min-width:20em
但是,如果要运行最大20em
范围的查询,则必须在查询中使用max-width:20em
。
在响应式设计的情况下,更好地使用px。因为em与比例大小有关。但是你必须为媒体查询提供绝对范围。
我希望这对你有很大的帮助。
答案 1 :(得分:0)
Bro,em是相对长度参数,它使用已经声明的绝对字体大小。同样重要的是要知道em
不是绝对长度参数等于16px
。 16px
是Chrome或您正在使用的任何浏览器的默认绝对字体大小。当您使用1em
时,似乎1em = 16px
。但事实并非如此。
如果您在样式内容之前设置默认值,例如设置html{ font-size:20px; }
,那么您将在容器中使用1 em
,它等于20px
。
因此,em按比例依赖于默认的绝对字体大小。这不是确切的值。
答案 2 :(得分:0)
缩放不会影响基于em的媒体查询。也不会更改根font-size
元素上的HTML
(但是,这会影响css中其他位置的em的大小,例如子元素上的font-size)。