ตัวยึดฟิลด์ข้อความ HTML ที่กึ่งกลางศูนย์


154

ฉันจะจัดตำแหน่งตัวจัดตำแหน่งของตัวป้อนฟิลด์ในรูปแบบ html ได้อย่างไร

ฉันใช้รหัสต่อไปนี้ แต่มันไม่ทำงาน:

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>

ไม่ใช่คำตอบที่แท้จริง แต่ jQuery Mobile ทำสิ่งนี้ดังนั้นคุณอาจต้องการดูว่าพวกเขาบรรลุผลอย่างไร
Evanss

สำหรับฉันรหัสของคุณจะทำงานเมื่อคุณกำจัดinput.placeholderบิต การจัดแนวข้อความภายในอินพุตให้กึ่งกลางจัดตำแหน่งตัวยึดตำแหน่งเช่นกัน
Cannicide

คำตอบ:


284

หากคุณต้องการเปลี่ยนเฉพาะรูปแบบตัวยึดตำแหน่ง

::-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
วิธีนี้ใช้ได้ผลดีสำหรับฟิลด์อินพุตส่วนใหญ่ แต่ไม่ใช่สำหรับวันที่พิมพ์ คุณรู้วิธีที่จะทำให้มันออกเดทได้หรือไม่?
Cornelius Parkin

93
input{
   text-align:center;
}

คือทั้งหมดที่คุณต้องการ

ตัวอย่างการทำงานใน FF6 วิธีนี้ดูเหมือนจะใช้งานข้ามเบราว์เซอร์ไม่ได้

CSS ก่อนหน้าของคุณพยายามจัดกึ่งกลางข้อความขององค์ประกอบอินพุตซึ่งมีคลาสเป็น "ตัวยึด"


5
ฉันไม่ต้องการให้ตัวยึดตำแหน่งอยู่กึ่งกลางรวมทั้งข้อความที่ป้อนลงในฟิลด์
สูงสุด _

1
ใช่. นี่คือสิ่งที่ตัวอย่างนี้ทำ ตัวยึดตำแหน่งเป็นข้อความในฟิลด์
Jamie Dixon

2
มันไม่ทำงานในตัวอย่าง ในตัวอย่างตัวยึดตำแหน่งถูกจัดชิดซ้าย
สูงสุด _

ระวังถ้าคุณใช้ไลบรารีเช่น Bootstrap หรือ Semantic UI คุณต้องเพิ่มอินไลน์สไตล์<input type="text" placeholder="Search..." style="text-align: right;">เพื่อให้มันใช้งานได้ หรือเพิ่มimportant!ในกฎ CSS ของคุณหากคุณใช้ไฟล์ภายนอก
Behdad

ดูเหมือนว่าปัญหาที่คุณมี max_ เป็นเพียงปัญหาของความเข้ากันได้ของเบราว์เซอร์ วิธีนี้ใช้ได้ดีในเบราว์เซอร์ส่วนใหญ่ยกเว้น Safari
Cannicide

7

องค์ประกอบ HTML5 สามารถยึดสไตล์เบราว์เซอร์ที่ยอมรับองค์ประกอบ แต่ในรูปแบบที่แตกต่างกันตามที่คุณสามารถดูที่นี่: http://davidwalsh.name/html5-placeholder-css

แต่ฉันไม่เชื่อว่าtext-alignจะถูกตีความโดยเบราว์เซอร์ อย่างน้อยใน Chrome แอตทริบิวต์นี้จะถูกละเว้น แต่คุณสามารถเปลี่ยนสิ่งอื่น ๆ เช่นcolor,font-size , font-familyฯลฯ ผมขอแนะนำให้คุณทบทวนการออกแบบของคุณไม่ว่าจะเป็นไปได้ที่จะเอาพฤติกรรมของศูนย์นี้

แก้ไข

หากคุณต้องการให้ข้อความนี้อยู่กึ่งกลางจริงๆคุณสามารถใช้ jQuery code หรือปลั๊กอินเพื่อจำลองพฤติกรรมของตัวยึดตำแหน่ง นี่คือตัวอย่างของมัน: http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

วิธีนี้จะใช้สไตล์:

input.placeholder {
    text-align: center;
}

7

คุณสามารถทำสิ่งนี้:

    <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>

รหัสการทำงานก่อนหน้านี้


เท่านี้ก็ใช้ได้กับฉันแล้ว บางทีสไตล์ที่เพิ่มเข้ามาใน HTML นั้นมีความสำคัญมากกว่าหรือเหนือกว่าสไตล์อื่น ๆ ทั้งหมด
Gokul

5

มันทำงานได้ดีสำหรับความต้องการของฉันคุณควรตรวจสอบความเข้ากันได้สำหรับเบราว์เซอร์ของคุณฉันไม่มีปัญหาเพราะฉันไม่สนใจความเข้ากันได้แบบย้อนหลัง

.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
นี่ไม่ใช่คำตอบที่ตรงกับคำตอบอื่นหรือไม่
Anwar

3

คุณสามารถใช้วิธีนี้เพื่อเขียน CSS สำหรับตัวยึดตำแหน่ง

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

ด้วยการใช้ข้อมูลโค้ดด้านล่างนี้คุณกำลังเลือกตัวแทนที่อยู่ภายในข้อมูลที่คุณป้อนและรหัสใด ๆ ที่วางไว้ภายในจะมีผลกับตัวยึดตำแหน่งเท่านั้น

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

คำตอบนี้ดูเหมือนจะไม่นำเสนอสิ่งที่แตกต่างเมื่อเทียบกับ คำตอบที่ได้รับการยอมรับ
Anton Menshov

คำตอบนี้ให้คำแนะนำเกี่ยวกับวิธีการเปลี่ยนตัวยึดตำแหน่งขององค์ประกอบเฉพาะหนึ่งตัวซึ่งตรงข้ามกับตัวยึดทั้งหมด .foo::-webkit-input-placeholder { … }เช่น
Henrik N

0

คุณสามารถใช้ set ในคลาสอย่างเช่นด้านล่างและตั้งเป็น
CSS text class input :

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

HTML:

<input type="text" class="place-holder-center">
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.