2014-12-16 2 views
0

Атрибут contenteditable корректно работает в Chrome, за исключением случаев, когда редактируемый элемент также является контейнером flexbox. Что тут происходит?Контейнер Flexbox не может быть доступен для контента в Chrome

<p>Can be edited in Chrome:</p> 
<div contenteditable="true"></div> 

<p>Cannot be edited in Chrome:</p> 
<div contenteditable="true" style="display:flex"></div> 

JSFiddle: http://jsfiddle.net/openjck/rhrxatst/3/

+0

https://bugzilla.mozilla.org/show_bug.cgi?id= 963247 –

+0

https://connect.microsoft.com/IE/feedback/details/750584/flexbox-causes-weird-behaviour-of-contenteditable –

+0

Что вы подразумеваете под дисплеем: flex? – Muhammad

ответ

0

Demo

HTML

<p>Can be edited in Chrome:</p> 
<div contenteditable="true"></div> 
<p>Cannot be edited in Chrome:</p> 

<!-- you need to have a flex-box container and set display style flex to this container --> 

<div class="flexContainer"> 
    <div contenteditable="true" class="flexItem"></div> 
</div> 

CSS

/* respective css style for flexContainer and flexItem */ 
.flexContainer { 
    display: -webkit-flex; 
    display: -moz-flex; 
    display: -ms-flex; 
    display: flex; 
} 
.flexItem { 
    -webkit-flex: 1 auto; 
    -moz-flex: 1 auto; 
    -ms-flex: 1 auto; 
    flex: 1 auto; 
} 
+0

Это работает, но есть некоторые случаи, когда для элемента contenteditable необходимо отображение: flex rule. В частности, кажется, что единственный способ вертикально центрировать текст, а также использовать полосу прокрутки - использовать display: flex (display: table-cell не поддерживает полосы прокрутки). –

Смежные вопросы