html - 生成 HTML、表单等时 CakePhp 是否为 'standards compliant'?

标签 html cakephp xhtml standards-compliance formhelper

所以我读了很多“使用 Web 标准进行设计”并且非常喜欢它。我是 CakePhp 的大用户,当我查看 Cake 使用 FormHelper 创建的各种表单元素的源代码时,我看到了各种无关的内容

在书中,他提倡使用语义 HTML,并尽可能简单/通用地编写标记。

所以我的问题是,在这些情况下我是否可以更好地编写自己的 HTML?我真的很想按照 XHTML 和 CSS 标准进行工作,而且当我可以编写自己的 HTML 时,我似乎会花同样多的时间(如果不是更多的话)清理 Cakes HTML

想法?

附:下面是 CakePhp 使用 FormHelper 生成的开箱即用表单示例

<form id="CompanyAddForm" method="post" action="/omni_cake/companies/add" accept-charset="utf-8"><div style="display:none;"><input type="hidden" name="_method" value="POST" /></div>       <div class="input text required"><label for="CompanyName">Name</label><input name="data[Company][name]" type="text" maxlength="50" id="CompanyName" /></div>        <div class="input text required"><label for="CompanyWebsite">Website</label><input name="data[Company][website]" type="text" maxlength="50" id="CompanyWebsite" /></div>        <div class="input textarea"><label for="CompanyNotes">Notes</label><textarea name="data[Company][notes]" cols="30" rows="6" id="CompanyNotes" ></textarea></div>        <div class="submit"><input type="submit" value="Submit" /></div></form>

编辑: 缩进形式(缩进不会影响标准合规性问题,但上述单行样式几乎无法阅读):

<form id="CompanyAddForm" method="post" action="/omni_cake/companies/add" accept-charset="utf-8">
    <div style="display:none;">
       <input type="hidden" name="_method" value="POST" />
    </div>
    <div class="input text required">
        <label for="CompanyName">Name</label>
        <input name="data[Company][name]" type="text" maxlength="50" id="CompanyName" />
    </div>
    <div class="input text required">
        <label for="CompanyWebsite">Website</label>
        <input name="data[Company][website]" type="text" maxlength="50" id="CompanyWebsite" />
    </div>
    <div class="input textarea">
        <label for="CompanyNotes">Notes</label>
        <textarea name="data[Company][notes]" cols="30" rows="6" id="CompanyNotes" ></textarea>
    </div>
    <div class="submit">
        <input type="submit" value="Submit" />
    </div>
</form>

在上面,有几个似乎没有必要的 div,比如具有内联 CSS“display:none”的 div。我意识到我可以更改所有字段的类和 ID,但如果我对每个字段都这样做,我还不如自己编写 HTML...

最佳答案

对于你的两个问题我的回答如下:

Is CakePhp 'standards compliant' when generating HTML, Forms, etc?

是的。

In [Designing with Web Standards], he promotes semantic HTML, and writing your markup as simple / generic as possible. So my question is, am I better writing my own HTML in these situations?

有时你的情况会更好,有时则不然。如果您的目标是使用最少的语义标记,那么大多数时候您最好编写自己的 HTML。但是,如果您的目标是快速生成符合标准的 HTML,那么让 Cake 发挥其应有的作用(快速开发框架)是一个好主意。

也就是说,当您发现不必要时,您可以告诉 Cake 不要打印其某些标记。例如,您可以通过使用 false 值和此选项来抑制包装表单输入的 div 元素:http://book.cakephp.org/view/1397/options-div

关于html - 生成 HTML、表单等时 CakePhp 是否为 'standards compliant'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610404/

相关文章:

javascript - 一次只能选择一个下拉菜单

php - 为什么会出现此错误?语法错误或访问冲突 : 1066 Not unique table/alias: 'Employees'

html - 强制标签在动态文本中关闭

html - 具有相同高度的容器未从顶部对齐

javascript - jQuery 在悬停时改变背景

html - 在多个页面上使用带有 ng-table 的索引

cakephp如何将下拉列表中的数据保存到数据库表中

php - CakePHP 1.3 如何有 2 个不同的登录页面和 2 个表

html - (X)HTML 无效时对浏览器性能有何影响

html - 主包装器 div 的 CSS 问题