راکت

استایل دهی به اینپوت از طریق جاوا اسکریپت

3 پاسخ

سلام ببخشید من یک اینپوت طراحی کردم که یک نوشته داخلش دارد و وقتی روی اینپوت فوکس میشود نوشته بالا میرود تا جا برای نوشتن متن باشد. برای بالا بردن متن مشکلی ندارم اونا با css درست کردم ولی وقتی نوشتن داخل اینپوت تمام میشود و اینپوت از حالت فوکس خارج میشود نوشته ای که رفته بود بالا میاد پایین و روی متن را میگیرد و متن درست مشخص نیس. سوال من اینه که چجوری با جاوا اسکریپت میشود گفت که وقتی این اینپوت پر است یا داخلش متن یا چیزی است به اون نوشته کلاسی داده شود تا بالا بماند. من کلاس دادن با جاوا اسکریپت را بلدم فقط نمیدونم چجوری بگم وقتی پر است این اتفاق بی افتد.

کد های html

<div class="input-field">
    <input type="text" class="input-field-input">
    <label class="input-field-text">
</div>

کد های css

.input-field {
    height: 50px;
    position: relative;
}
.input-field-input {
    font-size: 100%;
    border: solid #777;
    border-width: 0 0 1px;
    padding: calc(1rem - 1px);
    box-sizing: border-box;
    width: 100%;
    min-height: 54px;
    position: relative;
    z-index: 1;
    line-height: 1.3125;
    font-family: inherit;
    outline: none;
    background: none;
    transition: border-color 0.2s, color 0.2s;
}
.input-field-input:hover {
    border-color: #157ce1;
}
.input-field-input:focus {
    border-color: #157ce1;
}
.input-field-text {
    position: absolute;
    color: #777;
    top: 0.25rem;
    left: 1rem;
    right: auto;
    z-index: 2;
    transform: translate(0, 0);
    transform-origin: left center;
    pointer-events: none;
    margin-top: calc((54px - 1.5rem) / 2);
    user-select: none;
    transition: 0.3s all;
}
.input-field-input:hover ~ .input-field-text {
    color: #157ce1;
}
.input-field-input:focus ~ .input-field-text {
    color: #157ce1;
    transform: translate(0, -170%);
    font-size: 0.9rem;
}

طرح نهایی

توضیح تصویر رو وارد کنید

ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

با استفاده از پراپرتی value. میتونی مقدار فیلد رو چک کنی

if (document.querySelector(".input-field-input").value == "") {
    //  is empty
} else {
    //  is NOT empty
}
Reza
Reza
@Rezanp7

تخصص: برنامه نویس وب

سلام سادست با یه دستور شرطی چک میکنی وقتی مقدار اینپوت خالی بود اون متن بیاد پایین در غیر این صورت همونجا بمونه

شاید پاسخ شما همین‌جا باشد

مهران مرندی
مهران مرندی
@mehranmarandi

تخصص: برنامه نویس

میتونید استایل مورد نظرتون رو با شرط خالی بودن input بهش بدید

input:placeholder-shown {
     the input is empty */
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام