Да, вы можете изменить поведение свойства contentEditable, чтобы текст добавлялся только в дочерний элемент (тег p), даже если атрибут задается для родительского элемента. Для этого вам нужно использовать JavaScript для перехвата введенного текста и перемещения его в дочерний элемент.
Вот пример функции, которая сделает это:
```javascript
const editorText = document.querySelector('.editorText');
editorText.addEventListener('input', function(event) {
const paragraph = editorText.querySelector('p');
paragraph.textContent = event.target.textContent;
event.target.textContent = '';
});
```
В этом примере мы используем метод `addEventListener` для прослушивания события `input` на элементе с классом `editorText`. Когда пользователь вводит текст, мы находим дочерний элемент `p` и устанавливаем его содержимое равным введенному тексту. Затем мы очищаем содержимое родительского элемента.
Вы также можете использовать этот код в React компоненте:
```jsx
import React, { useState } from 'react';
import styles from './styles.module.css';
function MyEditor() {
const [content, setContent] = useState('');
const handleInput = (event) => {
const paragraph = event.currentTarget.querySelector('p');
paragraph.textContent = event.target.textContent;
event.target.textContent = '';
setContent(event.target.textContent);
}
return (
<div className={styles.editorText} onInput={handleInput} contentEditable={true}>
<p>{content}</p>
</div>
);
}
export default MyEditor;
```
В этом примере мы используем хук `useState` для хранения содержимого родительского элемента. Когда пользователь вводит текст, мы обновляем состояние и выводим его в дочернем элементе `p`.
Надеюсь, это поможет вам изменить поведение свойства contentEditable и достичь желаемого результата!