Поместите небольшой текст справа от поля ввода

Я должен иметь поле ввода, которое должно быть отключено при загрузке страницы до тех пор, пока не будет нажат небольшой текст «Редактировать» рядом с полем ввода, включающий его. Я хоть убей не могу понять, как разместить этот текст там, где он предназначен. Я еще не добавил отключенную/включенную функциональность, но это прямолинейно.

На данный момент мой код довольно прост. Mtop-8 просто устанавливает верхний край поля равным 8 пикселей.

<div class = "mtop-8">
<input placeholder = "Code" [(ngModel)] = "typedCode" />
<a style = "margin-top: auto"> Edit </a>
</div>

Я попытался использовать a, но в результате он оказался немного ниже поля ввода. Мне нужно, чтобы оно совпадало с нижней частью этого поля немного правее от него. Я также пытался использовать margin-top: auto, text-align: left и другие стили CSS, чтобы попытаться переместить его на место, но безрезультатно.

Похоже, они такие, как вы задумали. Входные данные и привязки являются встроенными элементами. Таким образом, они оба будут находиться в одной строке (один за другим по порядку), пока не станет достаточно места, а затем более поздний перейдет на следующую строку.

jottin 03.05.2024 20:53
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте flexbox, чтобы расположить контент горизонтально, а не вертикально, затем установите для свойства align-items значение center, чтобы убедиться, что весь контент внутри div будет центрироваться по оси Y. Также я рекомендую применить к элементу некоторый запас.

    document.getElementById("editLabel").addEventListener("click", function() {
        let input = document.getElementById("codeInput");
        let label = document.getElementById("editLabel");
        if (input.disabled) {
            input.disabled = false;
            label.innerHTML = "Stop Editing";
        } else {
            input.disabled = true;
            label.innerHTML = "Edit";
        }
    });
    .mtop-8 {
        margin-top: 8px;
        display: flex;
        align-items: center;
    }
    .mtop-8 a {
        /* Add a little spacing in between the input and text */
        margin-left: 4px;
    }
    <div class = "mtop-8">
        <input id = "codeInput" placeholder = "Code" [(ngModel)] = "typedCode" disabled/>
        <a id = "editLabel">Edit</a>
    </div>

В середине текстового поля справа по-прежнему отображается надпись «Редактировать», вместо этого мне нужно, чтобы она находилась в том же положении, но на одной линии с нижней частью поля ввода и серединой.

Tommy Kiroto 03.05.2024 22:11

@Tommy Kiroto, вы можете задать отрицательное нижнее поле для .mtop-8 a{-8px}

Mehdi 04.05.2024 00:16

@Mehdi Вместо того, чтобы использовать параметр «margin-bottom», который отправлял текст вверх, мне пришлось использовать «margin-top», чтобы отправить его вниз.

Tommy Kiroto 04.05.2024 05:05

Другие вопросы по теме