Загрузка...

Как задать блоку/элементу с аттрибутом contenteditabletrue размеры так чтобы текст не выходил

Тема в разделе Frontend создана пользователем Jakes_inactive5638896 20 окт 2023. (поднята 21 окт 2023) 155 просмотров

  1. Jakes_inactive5638896
    Jakes_inactive5638896 Автор темы 20 окт 2023 0 17 июл 2022
    Как задать блоку/элементу с аттрибутом contenteditable=true размеры так чтобы текст не выходил за пределы, с шириной всё нормально, а вот если текст за пределами высоты создаются либо новые div либо br, и как сделать так чтобы когда блок/элемент был полностью заполнен текстом либо просто пользователь нажал много раз enter создавался точно такой же блок/element и курсор ввода текста наводился на него
     
  2. RtpWTF
    RtpWTF 21 окт 2023 6 20 авг 2022
    text-wrap
     
  3. wayadm
    wayadm 24 окт 2023 2 18 окт 2023
    Создания блока или элемента с атрибутом contenteditable:

    HTML
    <div id="container">
    <div class="editable" contenteditable="true"></div>
    </div>

    CSS
    #container {
    width: 300px; /* Задайте ширину по своему усмотрению */
    border: 1px solid #ccc;
    overflow: hidden;
    }

    .editable {
    min-height: 20px; /* Минимальная высота блока */
    padding: 5px;
    border-bottom: 1px solid #ccc;
    }

    JS
    document.addEventListener("keydown", function (e) {
    if (e.key === "Enter") {
    e.preventDefault();
    const editable = document.querySelector(".editable");
    const container = document.getElementById("container");

    if (editable.offsetHeight >= container.offsetHeight - 10) {
    // Создаем новый блок
    const newEditable = document.createElement("div");
    newEditable.className = "editable";
    newEditable.contentEditable = true;
    container.appendChild(newEditable);

    // Передвигаем фокус ввода в новый блок
    newEditable.focus();
    }
    }
    });
    При нажатии Enter проверяется высота текущего блока с атрибутом contenteditable
     
Загрузка...
Top