虽然我对响应式设计的概念并不陌生,但我遇到了一个非常麻烦的问题...
我决定完全使用rem
单位,但仍然遵循62.5%
规则(我曾经在em
中使用过它)。
所以首先:
html {
font-size: 62.5%;
}
我假设 1rem = 10px (我知道这并不总是正确的,但嘿,这对我来说能使数学更容易些。对于浏览器来说仍然是相对的,对吗?)
恐怖从 Opera 开始(12.12 linux和win版本,默认字体大小分别设置为14px
和16px
)。
header nav ul li a span {
padding: 1.8rem 2.7rem 3rem 0;
font-family: 'sawasdeebold', sans-serif;
font-size: 2rem;
line-height: 3rem;
letter-spacing: -0.3rem;
display: block;
}
您可以看到,我的导航栏的一部分使用了“像素完美”技术,这要归功于使用rem
单位。在Linux下,页面宽度稍微窄了一些(这没有问题,因为字体较小,所以1rem
表示的像素数量也更少)。然而,如果默认大小更改为14px
以外的其他大小,则nav
中的所有内容都会不好地缩放... 在Windows下,同样适用于16px
...整个缩放的想法就是行不通的。我不需要每个像素都匹配,但它看起来很丑...
在IE9下也存在类似的问题,但这次是标志:
header h1 a {
margin: 1.8rem 0 0 1.6rem;
width: 46.2rem;
height: 10.1rem;
background: transparent url(../static/img/logotype.jpg) 0 0 no-repeat;
background-size: 46.2rem 20.2rem;
text-indent: -5000px;
display: block;
}
header h1 a:hover {
background-position: 0 -10.1rem;
}
尽管我设置了商标的高度和其背景的确切大小,但悬停时,背景位置会低1px
...
除这些问题外,我有一个一般性的问题。
使用rem
单位可以创建“像素完美”的布局吗?
我甚至还没有涉及媒体查询,想知道是否值得努力...
非常感谢!
rem
基于用户设置的值,但我不仅使用rem
来设置font-size
。我还使用这些单位来设置宽度、高度、填充等,以便所有内容都能随浏览器中设置的font-size
缩放。至少在除了 Opera 和(毫不意外的)IE 之外的所有浏览器中都是如此。关于你的问题... 嗯,我的布局并不是那么复杂,但我真的很喜欢我的导航栏与我设置的背景相适应(这是唯一一个被精心定位的元素)。我非常喜欢简约的设计风格,但我不想放弃我的设计 :( - op1ekun