如何防止 Google Translate 更改我页面的 html 结构?
How can I prevent Google Translate from changing the html structure of my page?
Google 翻译似乎正在更改我的 html,将我的星号移到新行。
这是一个活生生的例子:jsbin
我怎样才能避免这种情况?
翻译前:
翻译成西班牙语后:
JS:
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en',
layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
autoDisplay: false
}, 'google_translate_element');
}
Css:
.box_content-form-data {
clear: both;
float: left;
}
Html:
<div id="google_translate_element"></div>
<span style="clear:both; float:left;">Enter your email account.</span>
<span class="box_content-form-data">
<label>Email Address:
<span style="color:red;">*</span>
</label>
</span>
在这里。工作示例:http://jsbin.com/gelefonevu/edit?html,css,output
.box_content-form-data {
clear: both;
float: left;
}
.box_content-form-data:nth-of-type(2) {
clear: initial;
}
不使用 span,只使用标签。 <span>
标签似乎被 google 翻译奇怪地对待了。
我假设您将其绑定到一个更适合使用 <label>
的表格中。
这是fiddle:http://jsbin.com/rapusexufu/edit?html,css,output
<label style="clear:both; float:left;">Enter your email account.</label>
<label class="box_content-form-data">Email Address:
<span style="color:red;">*</span>
</label>
不要使用 span 环绕元素。 label
不允许在 span
中使用。这是无效的 HTML,因此容易导致错误。
从字面上将您的 <span class="box_content-form-data">
更改为 <div>
据我所知解决了这个问题。
参见 here
-- 根据您最后的评论,spans
的重要内容也对 labels
重要。它们不适合嵌套大量元素。
尽管我无法找到一种方法来阻止 Google 更改 HTML、here is how I handled it and it seems to work just fine.
我所做的只是将 *
从 HTML 中完全删除,并将其放入一个伪元素中,并隐藏由 Google 翻译创建的元素之一。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<title>JS Bin</title>
</head>
<body>
<div id="google_translate_element"></div>
<span style="clear:both; float:left;">Enter your email account.</span>
<span class="box_content-form-data">
<label class="my-email">Email Address:</label>
</span>
</body>
</html>
而对于 CSS:
.box_content-form-data {
clear: both;
float: left;
}
.my-email:after {
content: "*";
color: red;
}
font + .box_content-form-data {
display: none;
}
Google 翻译似乎正在更改我的 html,将我的星号移到新行。
这是一个活生生的例子:jsbin
我怎样才能避免这种情况?
翻译前:
翻译成西班牙语后:
JS:
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'en',
layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
autoDisplay: false
}, 'google_translate_element');
}
Css:
.box_content-form-data {
clear: both;
float: left;
}
Html:
<div id="google_translate_element"></div>
<span style="clear:both; float:left;">Enter your email account.</span>
<span class="box_content-form-data">
<label>Email Address:
<span style="color:red;">*</span>
</label>
</span>
在这里。工作示例:http://jsbin.com/gelefonevu/edit?html,css,output
.box_content-form-data {
clear: both;
float: left;
}
.box_content-form-data:nth-of-type(2) {
clear: initial;
}
不使用 span,只使用标签。 <span>
标签似乎被 google 翻译奇怪地对待了。
我假设您将其绑定到一个更适合使用 <label>
的表格中。
这是fiddle:http://jsbin.com/rapusexufu/edit?html,css,output
<label style="clear:both; float:left;">Enter your email account.</label>
<label class="box_content-form-data">Email Address:
<span style="color:red;">*</span>
</label>
不要使用 span 环绕元素。 label
不允许在 span
中使用。这是无效的 HTML,因此容易导致错误。
从字面上将您的 <span class="box_content-form-data">
更改为 <div>
据我所知解决了这个问题。
参见 here
-- 根据您最后的评论,spans
的重要内容也对 labels
重要。它们不适合嵌套大量元素。
尽管我无法找到一种方法来阻止 Google 更改 HTML、here is how I handled it and it seems to work just fine.
我所做的只是将 *
从 HTML 中完全删除,并将其放入一个伪元素中,并隐藏由 Google 翻译创建的元素之一。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<title>JS Bin</title>
</head>
<body>
<div id="google_translate_element"></div>
<span style="clear:both; float:left;">Enter your email account.</span>
<span class="box_content-form-data">
<label class="my-email">Email Address:</label>
</span>
</body>
</html>
而对于 CSS:
.box_content-form-data {
clear: both;
float: left;
}
.my-email:after {
content: "*";
color: red;
}
font + .box_content-form-data {
display: none;
}