学习 HTML 在线

336<bdi>

HTML <bdi> 元素 (双向隔离元素) 会隔离可能以不同方向进行格式化的外部文本。

当不知道是从什么方向嵌入文本,如来自于数据库的文本(有起数据库的文本方向)的时候,该元素是十分有用的。

注意:尽管同样的显示效果可以通过使用CSS规则 unicode-bidi:隔离<span>或者其他文本格式化元素,但语义信息只能通过<bdi>元素传递。特别是,当浏览器允许忽略CSS样式时,在这种情况下,使用<bdi>仍然可以保证文本正确显示,而使用CSS样式来传递语义时就显得毫无用处。

示例:

<p dir="ltr">This arabic word <bdi>ARABIC_PLACEHOLDER</bdi> is automatically displayed right-to-left.</p>

结果:

This arabic word REDLOHECALP_CIBARA is automatically displayed right-to-left.

335<b>

<b> 的效果是加粗,<strong>(强调)的效果也是加粗,有什么区别吗?

查了一下资料发现:strong 是 web 标准中 xhtml 的标签,strong 的意思是 "强调";b 是 html 的,b 的意思是 bold(粗体)。

为什么用 strong 代替 b ?其实这个问题不妨改问:xhtml 和 html 有什么不同,为什么要用 xhtml 代替 html?

简单地说:web 标准主张 xhtml 不涉及具体的表现形式,"强调"可以用加粗来强调,也可以用其它方式来强调,比如下划线,比如字体加大,比如红色,等等,可以通过 css 来改变 strong 的具体表现,这就是为什么 b 不能替代 strong。

334<!DOCTYPE>

<!DOCTYPE html> 是 HTML5 中唯一的 doctype,也被视作将网页 "升级" 到 HTML5 的第一步。

很多国外网站的 <!DOCTYPE html> 和 <HEAD> 之间都会有一段注释,如:

<!—[if IE 6 ]><html class="ie ielt9 ielt8 ielt7 ie6" lang="en-US"><![endif]—>
<!—[if IE 7 ]><html class="ie ielt9 ielt8 ie7" lang="en-US"><![endif]—>
<!—[if IE 8 ]><html class="ie ielt9 ie8" lang="en-US"><![endif]—>
<!—[if IE 9 ]><html class="ie ie9" lang="en-US"><![endif]—>
<!—[if (gt IE 9)|!(IE)]><!—><html lang="en-US"><!—<![endif]—>

改代码作用于 css,来写一些针对 IE 各版本的样式差异。

先判断用户用的哪个 IE 版本,然后在标签上加上该版本的 class,这样可以方便 hack。

css 文件是这样写的:

.ie6 xxx {};
.ie7 xxx {};

这是目前最好的 hack 方式之一。

333<!--...-->

javascript 中 <!-- //--> 是做什么用的?

HTML 中使用 JavaScript 经常看到以下写法:

<script type="text/javascript">
<!--
XXXXXXXX内容略XXXXX
//-->
</script>

这是防止某些浏览器,不支持 javascript,导致 javascript 的代码直接出现在页面上,影响美观。

因此,用 HTML 的注释把 javascript 的代码包括起来,如果浏览器不支持 javascript,那么也会当做注释处理。尽管 javascript 失效了,但不至于把源代码显示在页面上。

(有些浏览器可能支持 javascript,但也提供用户一个开关,关闭 javascript,如果用户关闭了javascript的功能,也会这样)

332<!--...-->

HTML 中注释

添加注释文字:

<!-- 在此处写注释 -->

也可以将一句或者一段代码注释:

<!-- 此刻不显示此段落:
<p>这是一个被注释了的段落。</p>
-->

条件注释:

<!--[if IE 8]>
.... some HTML here ....
<![endif]-->

注意: 条件注释定义只有 Internet Explorer 执行的 HTML 标签。