我在Safari中遇到问题,其中使用webfonts的文本块(不确定是否是webfonts)在Safari中的换行方式与在其他浏览器中的换行方式不同。在这种情况下,我们将这些块设计为 look ,就像它们设置为 @Override
public boolean onEditorAction(TextView v,int actionId,KeyEvent event)
{
if (actionId == EditorInfo.IME_ACTION_NEXT)
{
View next = holder.edtTxtQty.focusSearch(View.FOCUS_LEFT);
if(TextUtils.isEmpty(holder.edtTxtQty.getText()))
{
next = holder.edtTxtQty.focusSearch(View.FOCUS_DOWN);
}
else
{
holder.edtTxtQty.requestFocusFromTouch();
next = holder.edtTxtQty.focusSearch(View.FOCUS_DOWN);
}
if(next!=null)
{
next.requestFocus();
}
else
{
Utils.hideSoftKeyboard((Activity) context);
}
}
if (actionId == KeyEvent.KEYCODE_ENTER)
{
Utils.hideSoftKeyboard((Activity) context);
}
return true;
}
});
,但实际上是它们设置为text-align: justify;
一样。 text-align: left;
在此设置中是不希望的,因为它在计算单词之间的间隔方面做得很差。
要了解的重要事项:
视觉辅助工具:
有关布局和尺寸的详细信息:
text-align: justify;
。1220px
,其计算结果为padding: 0 calc(129 / 1220 * 100vw);
。129px
的可用内容空间。962px
默认设置为0。那么,任何人都不知道Safari为什么似乎夸大了跟踪/字母间隔?
编辑
我们刚刚启动了有问题的网站,因此您可以在此处查看实际的问题:https://www.typography.com/fonts/hoefler-text/overview
答案 0 :(得分:2)
好吧,这里有很多东西在玩。
首先,Chrome和Safari使用不同的默认值呈现文本,但除此之外,由于系统字体呈现的工作方式,在不同版本的MacOS或Windows上的Chrome也会呈现不同的文本。
通常,通过将文本CSS设置为:
,通常可以使Safari和Chrome(在同一系统上)感觉更近一些 text-rendering: optimizeLegibility
因为这是Chrome上的默认设置,但Safari默认为optimizeSpeed
显式设置font-feature-settings: "kern";
和font-smoothing: antialiased
(注意这两个都需要供应商前缀)
接下来,请确保指定数字字体粗细。例如:font-weight: 400
代表“常规”。 (浏览器可能不会对普通/粗体关键字选择相同的权重)
最后,请确保您提供的是Webfont的最优化版本(Typekit和Google通常会为您完成此操作,但是如果您是自托管字体,这是一个问题)
编辑:
可能有必要迫使Chrome和Safari都创建一个“合成层”(基本上意味着其GPU加速了)。您可以使用backface-visibility: hidden
来做到这一点。尽管我怀疑这是MacOS特有的,并且浏览器中可能没有解决方案。
答案 1 :(得分:1)
在字体的元素中添加font-feature-settings: "kern";
解决了Safari无法正确呈现字母间距的问题。