2011-12-20 61 views
0

我正在制定一個項目,其中我在<body>標記中定義了ID。對於不同的頁面,我定義了不同的IDs,&我總是遵循我所有項目的這個結構。但是在CakePHP的新項目中,我的開發人員告訴我,CakePHP項目的body標籤內不應該使用ID在CakePHP的body標籤中定義標識是否錯誤?

當我問他爲什麼,他說因爲我們可以通過CakePHP生成ID

我對CakePHP瞭解不多,但我認爲我們可以在CakePHP &其他語言的body標籤中定義ID

請提供一些鏈接或文章&您的建議。

感謝提前:)

+1

對不起,不太清楚問題在這裏。是的,你可以在''上加一個id屬性。是的,你可以動態地做。不,Cake並不關心這兩種方式。你想知道什麼? – deceze 2011-12-20 06:09:10

+0

我想知道'我們可以在cakephp中手動給id嗎?'因爲我的開發者說,請刪除ID的形式你的HTML標記 – sandeep 2011-12-20 06:12:57

+0

是的,你可以,它只是HTML。 – deceze 2011-12-20 06:19:45

回答

1

你可以在你的HTML標記,這不是一個問題定義的ID。但是從你的問題看來,你將id定義爲body標籤的屬性?

那麼你可以在body標籤中定義id。但問題出在cakePHP中,你有佈局,通常包含你的視圖的包裝HTML,如標題,頁腳等。所以你不能手動定義靜態ID的內部身體標籤爲不同的網頁,以及你可以,但你不會使用佈局。 你的開發者告訴你,我猜想是使用(uuid)唯一標識符的一個功能,由cakePHP提供的一個功能來爲DOM元素生成唯一的標識符。

您可以通過uuid(string $object, mixed $url)函數在您的視圖中生成id。

欲瞭解詳情,請訪問:http://book.cakephp.org/view/1091/uuid

+0

你當然可以爲不同的頁面添加id,使用與頁面標題完全相同的技術: in controller: $ this-> set('bodyId'=>'my-body-id' ); in view: – RichardAtHome 2011-12-20 17:31:13

0

你可以動態添加類,你的佈局,像這樣:

<?php 
$classes = String::insert(':plugin :controller :action', array(
    'plugin'  => $this->plugin, 
    'controller' => strtolower($this->name), 
    'action'  => $this->action, 
)); 
?> 
<div id="content" class="<?php echo trim($classes); ?>"> 
    <?php echo $content_for_layout; ?> 
</div> 

這將允許你命名空間的CSS聲明:

.blog.posts.view h2 { 
    /* ... */ 
} 

注:IE6不能正確支持多個類的鏈接來選擇單個元素,儘管有一些Javascriptshims如果你仍然支持它。

相關問題