Выравнивание по вертикали японских символов в IE8 - PullRequest
10 голосов
/ 04 августа 2011

У меня возникли проблемы с выравниванием японских символов в IE8 на веб-сайте, который я создаю.

У меня есть что-то вроде <span>Label</span><span>Some value</span>. Когда «Label» и «Some value» либо на японском, либо на английском языке, они выровнены нормально, но когда они смешаны («Label» всегда японский, но «Some value» может и не быть), выравнивание отключено. Пример на изображении ниже:

enter image description here

Сюрприз, сюрприз, все отлично работает в других браузерах, например, изображение из Chrome:

Example in Chrome

Я не могу понять, как это исправить. Кто-нибудь сталкивался с этим раньше или знает обходной путь для этого? Моя компания по-прежнему в основном использует IE7, поэтому некоторые хитрости, которые могут сработать, были бы наиболее полезными.

РЕДАКТИРОВАТЬ 1: я забыл добавить CSS, который я использую в данный момент. Для ярлыка у меня есть:

display: inline-block;
color: Gray;
vertical-align: text-top;

/*For IE7*/
zoom: 1;
*display: inline;

Для значений я использую нечто подобное:

display: inline-block;
margin: 0x 0px 0px 0px;
padding: 0px 0px 0px 0px;
vertical-align: text-top;

/*For IE7*/
zoom: 1;
*display: inline;

РЕДАКТИРОВАТЬ 2: Я уверен, что это связано с этой проблемой. У меня есть поля ввода в моей форме, которые идеально выровнены, пока я не наберу некоторые японские символы. Снова нет проблем для римских персонажей. Смотрите ниже:

enter image description here

Опять же, никаких проблем в других браузерах ...

РЕДАКТИРОВАТЬ 3:

Сегодня снова посмотрел на это (через год после того, как я задал этот вопрос ...). В IE9 символы отображаются так же, как в Chrome и других браузерах, в основном римские и японские слова выстроены правильно. Я проверил это с помощью IETester и для той же страницы японские шрифты выровнены «выше» в IE8, чем в IE9.

В IE8:

In IE8

В IE9:

In IE9

В то время я не мог проверить это, потому что у меня не было IE9. Шрифты выглядят одинаково, так что, должно быть, это проблема IE, и я ничего не могу с этим поделать?

Ответы [ 4 ]

1 голос
/ 03 апреля 2012

Убедитесь, что вы также назначаете vertical-align для текстовых полей.

http://jsfiddle.net/HkrJH/

Что касается проблемы с пролетами, я не могу это воспроизвести. Какой шрифт вы используете? Можете ли вы опубликовать jsfiddle , который демонстрирует проблему?

0 голосов
/ 06 апреля 2012

Я полагаю, что это может быть проблемой со шрифтами по умолчанию, используемыми для японского и английского языков. Английские символы содержат больше пробелов, чем японские, потому что английский должен содержать символы, такие как «c» (квадрат), «t» (выше) и «g» (глубже), в то время как все символы на японском языке - квадратные прямоугольники. Поэтому, если вы используете одинаковый размер символов в пикселях, английские могут отличаться от японских, в зависимости от шрифта, используемого для любого языка (вероятно, не одинакового или не выравнивающего, даже если он одинаковый). Если вы используете vertical-align: middle;, вы должны получить лучший результат.

0 голосов
/ 03 апреля 2012

Вы можете разместить следующий тег HTML в элементе HEAD вашей веб-страницы:

<meta http-equiv=“X-UA-Compatible” content=“IE=7” />
0 голосов
/ 29 августа 2011

Internet Explorer ужасен.

выберите браузер и добавьте таблицу стилей.

Пример в голове:

<!--[if IE 6]><link rel="stylesheet" href="http://mysite.com/path/to/ie6.css" type="text/css" media="screen, projection"><![endif]-->

<!--[if IE 7]><link rel="stylesheet" href="http://mysite.com/path/to/ie7.css" type="text/css" media="screen, projection"><![endif]-->
...