65.9K
CodeProject 正在变化。 阅读更多。
Home

你不知道但又不敢问的五个 XHTML 元素

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.62/5 (127投票s)

2006年5月5日

Ms-PL

4分钟阅读

viewsIcon

262944

downloadIcon

415

探索五个重要但鲜为人用的 XHTML/HTML 元素。此外,指出它们与 Internet Explorer、Firefox 和 ASP.NET 的关系。

引言

在 ASP.NET 开发过程中,我注意到一些重要的 XHTML 标签很少被 Web 开发人员使用,即使是经验丰富的开发人员也是如此,所以我想到写这篇文章来推广它们。

提到的大多数元素都与 HTML 兼容,但所有元素都与 XHTML 兼容。我在 W3C Validator 上针对 XHTML 1.1 和 XHTML 1.0 Transitional 验证了这些元素,并在 Internet Explorer 6 和 Firefox 1.5 上进行了测试。

这些元素包括 optgrouplabelfieldset/legendcol/colgroupacronym。在本文中,我将指出这些元素在 Internet Explorer 和 Firefox 之间的显示差异,此外,我还将展示它们与 ASP.NET 的关系。接下来是对每个元素的简要介绍

1. optgroup

optgroup sample

<label for="county">County</label>
<select id="county">
    <optgroup label="England">
        <option>Surrey</option>
        <option>Kent</option>
    </optgroup>
    <optgroup label="Scotland">
        <option>Orkney</option>
    </optgroup>
</select>

<label for="languages">Languages</label>
<select size="6" multiple="multiple" id="languages">
    <optgroup label="Classical">
        <option>C#</option>
        <option>C++</option>
        <option>Java</option>
    </optgroup>
    <optgroup label="Web">
        <option>ASP.NET</option>
        <option>PHP</option>
    </optgroup>
</select>

optgroup,代表 Option Group(选项组),它是一个元素,用于在 select 元素内对一组选项元素进行分组并为其添加标签。它非常适合显示州和城市、国家和州以及其他类似的分类项目。

不幸的是,此元素不被任何 ASP.NET 服务器控件生成;但是,我认为您可以轻松地继承 DropDownListListBoxItem 控件并进行必要的修改来生成它。

2. label

label sample

<label for="FirstName">Full&nbsp;Name</label>
<input id="FirstName" type="text" />
Gender:&nbsp;
<label for="male">Male</label>
<input id="male" type="radio" name="gender" />
<label for="female">Female</label>
<input id="female" type="radio" name="gender" />

label 元素为 form 元素提供了一个标题。它的主要属性是 "for" 属性,该属性指向您要为其提供标题的元素。

除了为元素提供标题外,label 还会使选择关联元素更加容易;因此,通过点击标题,您将聚焦到关联元素,就好像将标题文本作为关联元素的一部分一样。在提供的演示中,尝试点击“Full Name”一词,旁边的文本框将被选中;同样,当您点击“Male”一词时,单选按钮将被选中。

ASP.NET 为 RadioButtonCheckBox 服务器控件(以及其他控件)的 Text 属性生成此元素。这解释了为什么点击控件旁边的文本时可以将其聚焦。在 ASP.NET 2.0 中,Label 服务器控件有一个新的 AssociatedControlID 属性,该属性会将控件渲染为与指定元素关联的 HTML label,而不是将其渲染为 span 元素。

3. fieldset/legend

fieldset sample

<fieldset>
    CP is a good place to publish XHTML related articles. 
</fieldset>

<fieldset>
    <legend>Personal Information</legend>
    <label for="FirstName">Full&nbsp;Name</label>
    <input id="FirstName" type="text" />
    Gender:&nbsp;
    <label for="male">Male</label>
    <input id="male" type="radio" name="gender" />
    <label for="female">Female</label>
    <input id="female" type="radio" name="gender" />
</fieldset>

fieldset 是一个创建框架的元素,而 legend 是一个可选元素,用于为该框架创建标题。

在 ASP.NET 2.0 中,Panel Web 控件有一个新的 GroupingText 属性,该属性会将其渲染为 legendfieldset。但是,ASP.NET 1.1 没有可以生成此元素的标准 Web 控件。

4. col/colgroup

optgroup sample

<table border="1">
    <colgroup>
        <col width="150px" />
        <col width="10px"  />
        <col width="220p" />
    </colgroup>
    <tr>
        <td valign="top">1</td>
        <td>&nbsp;</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>&nbsp;</td>
        <td>4</td>
    </tr>
</table>

colgroup 元素是一个表格元素。它的唯一子元素是 col 元素。每个 col 元素影响表格中的一列。您可以为 colgroup 元素中的所有列指定通用属性,并为 col 元素中的各个列指定特定属性。您也可以省略 colgroup 元素并保留 col 元素。

使用 col 元素的好处是,您只需要指定一次属性,而不是在列中的每个 td 元素上添加相同的属性,这样可以减少属性数量,并且代码更易于管理。

对于跨浏览器问题,仅将 width 属性与 colgroupcol 元素一起使用,因为我注意到 Firefox 不支持 colgroupcol 的所有属性。

可惜,ASP.NET 的 TableGridView 服务器控件不生成这些元素。

5. acronym

acronym sample

<acronym title="Code Project">CP</acronym> is a good place to publish 
<acronym title="Extensible HyperText Markup Language">XHTML</acronym>
related articles.

acronym 元素通过 title 属性提供术语的定义。通过使用此元素,您可以帮助不熟悉该术语的读者,更好地优化您的页面以供搜索引擎抓取,并支持可访问性。

默认情况下,IE 6 不会在此元素包围的文本上显示任何标记;但是,Firefox 会在该文本下方显示虚线。当您将光标悬停在上面时,两个浏览器都会显示完整含义的工具提示。

如果您喜欢此元素,请查看 abbr(缩写)元素,它具有类似的作用。

结论

我发现了一些需要额外关注的元素;但是,还有更多隐藏的元素值得关注,例如 thtfbaseaddressbdoblockquotecodedldtdddfn 元素。

本文为每个元素提供了快速参考;有关属性和用法的完整列表,请尝试 W3 Schoolshtmldog.com,您也可以随时查阅 World Wide Web Consortium 的官方文档。

如果您觉得本文内容有用,请记住投票。

历史

  • 2006年4月25日 - 第一个版本
  • 2006年5月10日 - 第二个版本
  • 2006年5月13日 - 第三个版本
© . All rights reserved.