使用 CSS 转换在 Chrome 和 Firefox 中呈现问题
Rendering Problem in BOTH Chrome & Firefox with CSS Transform
虽然有时这里或那里的一个像素必须被原谅和遗忘。
但在这个例子中,这个简单的菜单需要完美呈现像素!
也就是说,菜单项之间的间距必须完全相等。
在我的示例中,所有菜单分隔符看起来都很丑陋、模糊,并且因为一些项目融合在一起而迷失了方向。
而其他人相距太远。一团糟。经过一夜的睡眠,
我得出的结论是,这是生活座右铭的场景之一
接受任何发生在你身上的东西是不能被接受的,设计师必须表明立场。
无论是虚线还是实线,我每走一步都会出现问题。
将边距设置为 -1px 并添加 1px 的边框并不能解决这个问题。
这两个示例均来自 2022 年最新版本的 Chrome 和 Firefox。
有没有一种方法可以用相等、精确的 pixelated/aliased 锐线分隔项目,而不会出现看似随机粗细的模糊抗锯齿模糊线?
您可以完全重写它或使用 flexbox 或任何其他优雅的 CSS 解决方案!
..............................
nav ul{
list-style: none;
margin: 0;
padding: 0;
}
nav {
top: 0px;
left: 0px;
position: absolute;
height: auto;
display: inline-block;
font-style: italic;
font-size: 1.25em;
padding: 0px 0 0 0;
}
nav li {
background-color: blue;
writing-mode: vertical-rl;
transform: scale(-1);
line-height: 1em;
border-top: 1px dashed white;
}
nav li a {
display:block;
text-decoration: none;
color: #fff;
padding: 2em;
}
<nav>
<ul>
<li><a href="#">Bureau</a></li>
<li><a href="#">Projecten</a></li>
<li><a href="#">Diensten</a></li>
<li><a href="#">Ontwerpen</a></li>
<li><a href="#">Concepten</a></li>
<li><a href="#">Kunsten</a></li>
</ul>
</nav>
当您开始将变换应用到它们所应用的元素时,边框可能很复杂,因此从包含 <li>
的元素中删除 transform:scale(-1)
并改为变换 <a>
:
nav li {
background-color: blue;
writing-mode: vertical-rl;
line-height: 1em;
border-top: 1px dashed white;
}
nav li a {
display:block;
text-decoration: none;
color: #fff;
padding: 2em;
transform:rotate(180deg); <- other transforms are available :)
}
根据您的代码在此处摘录:https://codepen.io/29b6/pen/KKQZywz
虽然有时这里或那里的一个像素必须被原谅和遗忘。
但在这个例子中,这个简单的菜单需要完美呈现像素!
也就是说,菜单项之间的间距必须完全相等。
在我的示例中,所有菜单分隔符看起来都很丑陋、模糊,并且因为一些项目融合在一起而迷失了方向。
而其他人相距太远。一团糟。经过一夜的睡眠,
我得出的结论是,这是生活座右铭的场景之一
接受任何发生在你身上的东西是不能被接受的,设计师必须表明立场。
无论是虚线还是实线,我每走一步都会出现问题。
将边距设置为 -1px 并添加 1px 的边框并不能解决这个问题。
这两个示例均来自 2022 年最新版本的 Chrome 和 Firefox。
有没有一种方法可以用相等、精确的 pixelated/aliased 锐线分隔项目,而不会出现看似随机粗细的模糊抗锯齿模糊线?
您可以完全重写它或使用 flexbox 或任何其他优雅的 CSS 解决方案!
nav ul{
list-style: none;
margin: 0;
padding: 0;
}
nav {
top: 0px;
left: 0px;
position: absolute;
height: auto;
display: inline-block;
font-style: italic;
font-size: 1.25em;
padding: 0px 0 0 0;
}
nav li {
background-color: blue;
writing-mode: vertical-rl;
transform: scale(-1);
line-height: 1em;
border-top: 1px dashed white;
}
nav li a {
display:block;
text-decoration: none;
color: #fff;
padding: 2em;
}
<nav>
<ul>
<li><a href="#">Bureau</a></li>
<li><a href="#">Projecten</a></li>
<li><a href="#">Diensten</a></li>
<li><a href="#">Ontwerpen</a></li>
<li><a href="#">Concepten</a></li>
<li><a href="#">Kunsten</a></li>
</ul>
</nav>
当您开始将变换应用到它们所应用的元素时,边框可能很复杂,因此从包含 <li>
的元素中删除 transform:scale(-1)
并改为变换 <a>
:
nav li {
background-color: blue;
writing-mode: vertical-rl;
line-height: 1em;
border-top: 1px dashed white;
}
nav li a {
display:block;
text-decoration: none;
color: #fff;
padding: 2em;
transform:rotate(180deg); <- other transforms are available :)
}
根据您的代码在此处摘录:https://codepen.io/29b6/pen/KKQZywz