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">▼</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();
}
});
工作。謝謝! – thomasdclark