Saya menggunakan tab terapung untuk tapak web ini. Saya mengubah suai kod sedikit untuk meletakkan input dan pemilihan dalam satu baris. Dalam versi Edge 114.0.1823.67 dan Chrome versi 114.0.5735.199, garis dasar mempunyai kedudukan menegak yang berbeza. Dalam Firefox versi 115.0, garis dasar mempunyai kedudukan menegak yang sama. Kod:
@import url('https://fonts.google.com/specimen/Lato?selection.family=Lato'); :root { --main-color: #ee6e73; --second-color: #333; --input-color: #9e9e9e; } body { height: 100vh; display: flex; justify-content: center; align-items: center; font-family: 'Lato', sans-serif; background-color: #fcfcfc; flex-direction: column; } form { padding: 20px 40px; } form h1 { color: var(--second-color); letter-spacing: 1px; margin: 10px 0px; } .form-group { position: relative; padding: 20px 0; width: 300px; max-width: 100%; } .form-group input, select { background-color: transparent; border: none; border-bottom: 1px solid var(--input-color); color: var(--second-color); font-size: 16px; padding: 10px 0; display: block; width: 100%; } .form-group label { color: var(--input-color); font-size: 16px; font-weight: 100; position: absolute; pointer-events: none; top: 0; transform: translateY(30px); transition: all 0.2s ease-in-out; left: 0px; } .form-group input:focus, .form-group select:focus { border-bottom-color: var(--main-color); outline: none; } .form-group input:valid+label, .form-group input:focus+label { color: var(--main-color); font-size: 14px; transform: translateY(0); } input[type="button"] { background-color: var(--main-color); border: 2px solid var(--main-color); border-radius: 2px; box-sizing: border-box; color: #fff; cursor: pointer; font-size: 16px; padding: 15px 0; margin-top: 15px; width: 100%; } input[type="button"]:hover { background-color: #fff; color: var(--main-color); } input[type="button"]:active { border-color: #fff; } input[type="button"]:focus { outline: none; }
<form> <h1>CSS Floating Labels</h1> <fieldset> <div style="display: flex; flex-direction: row; justify-content: flex-start;"> <div class="form-group"> <input type="text" required/> <label>Username</label> </div> <div class="form-group"> <select> <option value="">Test</option> </select> </div> <div class="form-group"> <input type="password" required/><label>Password</label> </div> </div> </fieldset> <input type="button" value="Submit" /> </form>
Saya cuba menyelesaikannya dengan vertical-position:bottom
tetapi malangnya tidak berjaya.
select
因具有挑战性的样式而臭名昭著。话虽这么说,我更改了填充 - 可能甚至需要执行浏览器特定的样式,但在这里我只是更改了填充:padding: 1.225em 0;
FWIW saya gunakanem
untuk membantu otak saya memproses sesuatu dengan lebih mudah.Kemas kini: Alternatif yang sama sekali berbeza daripada menggunakan set grid, kerana kami mahu peletakan X dan Y meletakkan label dan medan dalam kedudukan yang sama pada baris. Perhatikan saya menamakan baris/lajur dan menggunakannya. Beberapa pembungkus dan kelas (Saya tidak suka menggunakan tag elemen dalam gaya CSS supaya kami boleh menukar jenis elemen tanpa perlu menukar CSS)