2015-11-13 93 views
2

小提琴:http://jsfiddle.net/6dqjoLrn/2/火狐不是內聯元素尊重外塊最大寬度

我正在定製輸入框,這將含有多種CONTENTEDITABLE跨度和某些非CONTENTEDITABLE的DIV。我試圖在我的「輸入框」的範圍內包含所有ContentEditable SPAN。所有這些元素都在一個帶有設置最大寬度的DIV中,我期望它能夠包含所有元素。 Chrome和IE就是這種情況,但似乎並未在Firefox中運行(可以通過運行小提琴來查看)。有沒有什麼我做錯了,當試圖遏制這些,或者有一些我需要在Firefox的特殊技巧,使這種情況發生?

謝謝。

HTML:

<div id="Outside"> 
    <div class="tokenizer"> 
     <div class="content"> 
      <span contenteditable="true" class="textInput lastInput empty"></span> 
     </div> 
     <div id="dropdownbtn" class="listHidden">&#x25BC;</div> 
    </div> 
</div> 

CSS:

* { 
    font-family: 'Trebuchet MS'; 
    font-size: 16px; 
} 

span { 
    border: 0px; 
} 

span.textInput { 
    line-height:29px; 
    word-break: break-all; 
} 

span:focus { 
    outline: none; 
} 

span.empty { 
    width: 1px; 
    display: inline-block; 
} 

.tokenizer { 
    width: 500px; 
    border: 1px solid #ccc; 
    border-radius: 3px; 
    padding: 5px; 
    margin: auto; 
    margin-top: 100px; 
    overflow: hidden; 
    cursor: text; 
} 

.content { 
    display: inline-block; 
    float: left; 
    max-width: 474px; 
} 

#dropdownbtn { 
    display: inline-block; 
    float: right; 
    border: 1px solid #39668D; 
    width: 20px; 
    text-align: center; 
    background-color: #E0E9F1; 
    border-radius: 2px; 
    color: #39668D; 
    cursor: pointer; 
} 

#Outside { 
    top:40px; 
    left:50px; 
    width:100%; 
} 

JS:

$('span.textInput').on('keydown', function(event) { 

    var element = $(event.target); 
    if (element.text().length > 0) { 
     if (element.hasClass('empty')) { 
      element.removeClass('empty'); 
     } 
    } else { 
     if (!element.hasClass('empty')) { 
      element.addClass('empty'); 
     } 
    } 
}); 

$('.tokenizer').on('click', function(event) { 
    if ($('.curInput').length) { 
     $('.curInput').focus(); 
    } else { 
     $('.lastInput').focus(); 
    } 
}); 

回答

1

嘗試增加給你的CSS。

.content { 
    word-break: break-all; 
} 

word-break: break-word;也應該工作。

這解決了我的問題。 http://jsfiddle.net/5de1zq8n/

Chrome和Firefox都顯示使用默認樣式word-break: normal;,但Chrome似乎服從max-width,而Firefox不支持。

希望有所幫助。

+0

工作。謝謝! – thomasdclark