Изменение размера шрифта на основе языка
Итак, я прочитал несколько предложений с тегом языка css, но кажется, что все требует размещения языка в теге в расширенном. Я не могу изменить теги html вокруг корейского языка, он имеет тот же тег h1, что и английский. Это потому, что это переведенная версия одного и того же веб-сайта.
Я хочу иметь другой шрифт и размер шрифта для корейской версии, чем английский. Могу ли я сделать это, просто зная язык? Я нашел несколько других вопросов, связанных с диапазоном Unicode, который использовал @font-face {}, для одного, я не могу понять, что такое юникодный диапазон на корейском языке, я пробовал посмотреть всю документацию, но я просто не понимаю, как рассчитываются диапазоны Unicode и написано. Кроме того, я надеялся, что есть такой вариант, как
h1{
unicode-range: korean;
font-size: 10px;
}
h1{
unicode-range: english;
font-size 20px;
}
Можно ли это сделать?
Спасибо!
Ответы
Ответ 1
В вашем случае атрибут lang
устанавливается в теге html
, поэтому вы можете стилизовать все элементы, которые вам нужны, на основе этого с помощью правил:
html:lang(en) h1{
font-size: 20px;
}
html:lang(ko) h1{
font-size: 10px;
}
Будьте осторожны, но псевдокласс класса :lang
поддерживается только в IE8+. Если вам нужна поддержка в IE7 +, лучший выбор для синтаксиса этого типа: a[lang="en"]
.
Ответ 2
Вы можете использовать псевдо-класс CSS :lang
, если вы установите атрибут lang
в свой HTML, чтобы изменить стиль. Например см. Демонстрацию или следующий код:
CSS
:lang(en) {
font-size:20px;
}
:lang(fr) {
font-size:10px;
}
HTML
<p lang="en">Lorem</p>
<p lang="fr">Lorem</p>
Ответ 3
Это может быть полезно: http://billposer.org/Linguistics/Computation/UnicodeRanges.html
Вы ищете Hangul, который представляет собой "Корейский алфавит, также известный как Хангул, [nb 1] или Chosongul"
Привет
Ответ 4
Измените таблицу стилей на выборе языка
<body onload="set_style_from_cookie()">
//style sheet
<link rel="stylesheet" type="text/css" title="korean"
href="http://example.com/css/korean.css">
<link rel="alternate stylesheet" type="text/css" title="english"
href="http://example.com/css/english.css">
//form to select language using button
<form>
<input type="submit"
onclick="switch_style('korean');return false;"
name="theme" value="korean Language" id="korean">
<input type="submit"
onclick="switch_style('english');return false;"
name="theme" value="english language" id="english">
</form>
//javascript
<script>
// *** TO BE CUSTOMISED ***
var style_cookie_name = "style" ;
var style_cookie_duration = 30 ;
// *** END OF CUSTOMISABLE SECTION ***
function switch_style ( css_title )
{
var i, link_tag ;
for (i = 0, link_tag = document.getElementsByTagName("link") ;
i < link_tag.length ; i++ ) {
if ((link_tag[i].rel.indexOf( "stylesheet" ) != -1) &&
link_tag[i].title) {
link_tag[i].disabled = true ;
if (link_tag[i].title == css_title) {
link_tag[i].disabled = false ;
}
}
set_cookie( style_cookie_name, css_title,
style_cookie_duration );
}
}
function set_style_from_cookie()
{
var css_title = get_cookie( style_cookie_name );
if (css_title.length) {
switch_style( css_title );
}
}
function set_cookie ( cookie_name, cookie_value,
lifespan_in_days, valid_domain )
{
var domain_string = valid_domain ?
("; domain=" + valid_domain) : '' ;
document.cookie = cookie_name +
"=" + encodeURIComponent( cookie_value ) +
"; max-age=" + 60 * 60 *
24 * lifespan_in_days +
"; path=/" + domain_string ;
}
function get_cookie ( cookie_name )
{
var cookie_string = document.cookie ;
if (cookie_string.length != 0) {
var cookie_value = cookie_string.match (
'(^|;)[\s]*' +
cookie_name +
'=([^;]*)' );
return decodeURIComponent ( cookie_value[2] ) ;
}
return '' ;
}
</script>
Ответ 5
вы можете использовать что-то похожее на:
h1[lang=en] {
font-size: 10px;
}
h1[lang=kr] {
font-size: 14px;
}
или если вы хотите указать только lang=""
один раз, а не на каждый элемент, вы могли бы сделать
#content[lang=en] h1 {
}
#content[lang=en] p {
}
#content[lang=kr] h1 {
}
#content[lang=kr] p {
}
Ответ 6
Если вы используете какой-либо динамический язык в качестве серверной части своего сайта, вы можете просто выполнить динамическую загрузку CSS в зависимости от локали.
например. у вас есть в папке css следующее:
style.css // this is the default
style_en_US.css
style_ko_KR.css
Таким образом, вы можете иметь разделение глобальных настроек от конкретных локали и легко загружать требуемый стиль с легкостью.
Если у вас есть статическая HTML-страница, вы можете загрузить JavaScript для динамического CSS или использовать
:lang
псевдокласс, как указано другими.
Независимо от выбранного решения, не забудьте следить за совместимостью с браузером.
ПРИМЕЧАНИЕ. Часто это лучшее решение для того, чтобы пользователь явно выбирал свой предпочтительный язык, вместо того, чтобы автоматически устанавливать его на основе информации о клиентской системе.