2011-04-27 125 views
0

我有一個關於嵌套div的問題。這兩個div都是可編輯的。 問題是如果我在div中編寫內容(即簡單文本),然後將我的光標放在inner(child)div的開始處,然後按退格鍵,它會移動父div中的文本。 爲什麼會發生?我知道這是默認行爲。 有什麼可以解決這個問題?嵌套Divs退格問題

<head> 
    <title>----</title> 
</head> 

<body style="100%"> 
    <br /> 
    <br /> 
    <br /> 

<div contenteditable="true" style="min-height:80%; min-width:100%; background-color:#00ffff"> 
    <div id="test" style="margin:auto; width:100%; background-color:#e3e3e3; 
border-width:5px; border-color:e9e9e9; word-wrap: break-word; overflow:hidden; 
min-height:25px;" contenteditable="true"> 

     Child Div Text here!!! 

    </div> 
        Parent Div Text Here 
</div> 

</body> 

問候, 艾哈邁德

+0

你的意思是,如果你刪除的空間量在子div中,那麼父div移動正確? – 2011-04-27 13:49:07

+0

我做了一個jsFiddle:http://jsfiddle.net/3Zjvh/當你在孩子的左邊緣並且回退時,子div被刪除。 – 2011-04-27 14:01:21

+0

我看到你在困境中。我試過各種方法試圖阻止合併到子div文本,但沒有成功的父div文本。雖然我已經看到它完成。不知道這些對你是否有用... http://blog.whatwg.org/the-road-to-html-5-contenteditable和http://dev.opera.com/articles/view/rich- HTML - 編輯 - 內式瀏覽器的部分-1 / – Mindthetic 2011-04-27 14:40:09

回答

0

這可能不會是完全正確的,但我認爲你div s的轉變的原因是因爲你設定寬度的方式的孩子div。如果您對子div執行width:100%那麼div的大小將拉伸以包含所有間距。您還沒有指定任何位置屬性,因此父母div將自己置於子女div的旁邊。這意味着任何對孩子div的位置和寬度的更改(將隨着您的' '的數量而改變)也會改變父母的位置。如果您不希望父母div移動,那麼您需要A)爲子div指定一組width或B)爲每個div設置一個位置。如果你有一個css文件時,它會是這個樣子:

A)

/* You would need to add IDs to each div so I am just going to do child */ 
#child 
{ 
    width: 200px; /* Set number */ 
} 

OR

B)

#child 
{ 
    position: absolute /* Or however you wish to do this */ 
    top: 10px; /* Some number */ 
    left: 10px; /* Again whatever number */ 
}