Trung tâm giữ chỗ trường nhập văn bản HTML


153

Làm cách nào tôi có thể căn giữa căn chỉnh chỗ dành cho trường đầu vào ở dạng html?

Tôi đang sử dụng đoạn mã sau, nhưng nó không hoạt động:

CSS ->

input.placeholder {
    text-align: center;
}
.emailField {
    top:413px;
    right:290px;
    width: 355px;
    height: 30px;
    position: absolute;
    border: none;
    font-size: 17;
    text-align: center;
}

HTML ->

<form action="" method="POST">
    <input type="text" class="emailField" placeholder="support@socialpic.org" style="text-align: center" name="email" />
    <!<input type="submit" value="submit" />  
</form>

Không thực sự là một câu trả lời, nhưng jQuery Mobile thực hiện điều này để bạn có thể muốn xem cách họ đạt được nó.
Evans

Đối với tôi, mã của bạn hoạt động khi bạn thoát khỏi input.placeholderbit. Căn chỉnh văn bản bên trong đầu vào để trung tâm cũng sắp xếp giữ chỗ.
Tự sát

Câu trả lời:


283

Nếu bạn chỉ muốn thay đổi kiểu giữ chỗ

::-webkit-input-placeholder {
   text-align: center;
}

:-moz-placeholder { /* Firefox 18- */
   text-align: center;  
}

::-moz-placeholder {  /* Firefox 19+ */
   text-align: center;  
}

:-ms-input-placeholder {  
   text-align: center; 
}

5
Điều này hoạt động tốt cho hầu hết các trường đầu vào, nhưng không phải cho ngày loại. Bạn có biết làm thế nào để làm cho nó hoạt động cho ngày?
Cornelius Parkin

92
input{
   text-align:center;
}

là tất cả những gì bạn cần.

Ví dụ làm việc trong FF6. Phương pháp này dường như không tương thích với nhiều trình duyệt.

CSS trước đó của bạn đã cố gắng căn giữa văn bản của một yếu tố đầu vào có một lớp "giữ chỗ".


5
Tôi sẽ không tập trung vào trình giữ chỗ cũng như văn bản được nhập vào trường
max_

1
Đúng. Đây là những gì ví dụ này làm. Giữ chỗ văn bản trong lĩnh vực này.
Jamie Dixon

2
nó không hoạt động trong ví dụ. Trong ví dụ, trình giữ chỗ được căn trái.
tối đa

Coi chừng, nếu bạn đang sử dụng các thư viện như Bootstrap hoặc Semantic UI, bạn phải thêm kiểu nội tuyến, tức là <input type="text" placeholder="Search..." style="text-align: right;">để nó hoạt động. Hoặc thêm important!vào quy tắc CSS của bạn nếu bạn đang sử dụng các tệp bên ngoài.
Behdad

Có vẻ như vấn đề bạn gặp phải max_ chỉ là vấn đề tương thích trình duyệt. Điều này hoạt động tốt trong hầu hết các trình duyệt chính trừ Safari.
Tự sát

7

Phần tử giữ chỗ HTML5 có thể được tạo kiểu cho những trình duyệt chấp nhận phần tử đó, nhưng theo những cách khác nhau, như bạn có thể thấy ở đây: http://davidwalsh.name/html5-placeholder-css .

Nhưng tôi không tin rằng text-alignsẽ được các trình duyệt giải thích. Ít nhất là trên Chrome, thuộc tính này bị bỏ qua. Nhưng bạn luôn có thể thay đổi những thứ khác, như color, font-size, font-familyvv Tôi đề nghị bạn suy nghĩ lại thiết kế của bạn cho dù có thể để loại bỏ hành vi trung tâm này.

BIÊN TẬP

Nếu bạn thực sự muốn văn bản này tập trung, bạn luôn có thể sử dụng một số mã hoặc plugin jQuery để mô phỏng hành vi giữ chỗ. Đây là một mẫu của nó: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html .

Bằng cách này, phong cách sẽ hoạt động:

input.placeholder {
    text-align: center;
}

7

Bạn có thể làm như thế này:

    <center>
    <form action="" method="POST">
    <input type="text" class="emailField" placeholder="support@socialpic.org" style="text-align: center" name="email" />
    <input type="submit" value="submit" />  
</form>
    </center>

CodePen làm việc tại đây


Chỉ điều này là làm việc cho tôi. Có thể các kiểu được thêm vào HTML được ưu tiên hơn hoặc ghi đè tất cả các kiểu khác.
Gokul

5

Nó hoạt động tốt cho nhu cầu của tôi, bạn nên kiểm tra tính tương thích cho trình duyệt của mình, tôi không gặp vấn đề gì vì tôi không quan tâm đến khả năng tương thích ngược

.inputclass::-webkit-input-placeholder {
text-align: center;
}
.inputclass:-moz-placeholder { /* Firefox 18- */
text-align: center;  
}
.inputclass::-moz-placeholder {  /* Firefox 19+ */
text-align: center;  
}
.inputclass:-ms-input-placeholder {  
text-align: center; 
}

3
Đây không phải là câu trả lời một bản sao trực tiếp của câu trả lời khác?
Anwar

3

bạn cũng có thể sử dụng cách này để viết css cho trình giữ chỗ

input::placeholder{
   text-align: center;
}

2

Bạn có thể thử như thế này:

input[placeholder] {
   text-align: center;
}

1
::-webkit-input-placeholder {
 font-size: 14px;
 color: #d0cdfa;
 text-transform: uppercase;
 text-transform: uppercase;
 text-align: center;
 font-weight: bold;
}
:-moz-placeholder { 
 font-size:14px;
 color: #d0cdfa;
 text-transform: uppercase;
 text-align: center;
 font-weight: bold;
}
::-moz-placeholder { 
 font-size: 14px;
 color: #d0cdfa; 
 text-transform: uppercase;
 text-align: center;
 font-weight: bold;
} 
:-ms-input-placeholder { 
 font-size: 14px; 
 color: #d0cdfa;
 text-transform: uppercase;
 text-align: center;
 font-weight: bold;
}

0

Bằng cách sử dụng đoạn mã bên dưới, bạn đang chọn trình giữ chỗ bên trong đầu vào của mình và bất kỳ mã nào được đặt bên trong sẽ chỉ ảnh hưởng đến trình giữ chỗ.

input::-webkit-input-placeholder {
      text-align: center
}

Câu trả lời này dường như không cung cấp bất cứ điều gì khác biệt so với Câu trả lời được chấp nhận .
Anton Menshov

Câu trả lời này đưa ra gợi ý về cách thay đổi trình giữ chỗ chỉ có một yếu tố cụ thể trái ngược với tất cả các trình giữ chỗ. Ví dụ .foo::-webkit-input-placeholder { … }.
Henrik N

0

Bạn có thể sử dụng tập hợp trong một lớp như bên dưới và đặt thành
CSS lớp văn bản đầu vào :

 .place-holder-center::placeholder {
        text-align: center;
    }

HTML:

<input type="text" class="place-holder-center">
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.