แบบอักษรยอดเยี่ยมประเภทอินพุต 'ส่ง'


205

ดูเหมือนจะไม่มีคลาสสำหรับประเภทการป้อนข้อมูล 'ส่ง' ในฟอนต์ที่ยอดเยี่ยม เป็นไปได้ไหมที่จะใช้บางคลาสจากฟอนท์ยอดเยี่ยมสำหรับการป้อนปุ่ม? ฉันได้เพิ่มไอคอนให้กับปุ่มทั้งหมด (ซึ่งเชื่อมโยงกับคลาส 'btn' จาก twitter-bootstrap) ในแอปพลิเคชันของฉัน แต่ไม่สามารถเพิ่มไอคอนใน 'ประเภทอินพุตส่ง'

หรือวิธีใช้รหัสนี้:

input#image-button{
    background: #ccc url('icon.png') no-repeat top left;
    padding-left: 16px;
    height: 16px;
}

HTML:

<input type="submit" id="image-button">Text</input>

(ซึ่งฉันได้รับจากHTML: จะสร้างปุ่มส่งพร้อมข้อความ + รูปภาพได้อย่างไร ) ด้วยตัวอักษรที่ยอดเยี่ยม?

คำตอบ:


345

ใช้ปุ่มชนิด = "ส่ง" แทนการป้อนข้อมูล

<button type="submit" class="btn btn-success">
    <i class="fa fa-arrow-circle-right fa-lg"></i> Next
</button>

สำหรับการใช้ Font Awesome 3.2.0

<button type="submit" class="btn btn-success">
    <i class="icon-circle-arrow-right icon-large"></i> Next
</button>

! น่ากลัว ทำงานได้ตามที่คาดหวัง ยังคงต้องมีขั้นตอนบางอย่างในการปรับใช้เพื่อ simple_form หรือสร้างผู้ช่วย แต่มันค่อนข้างง่าย
denis.peplin

19
ระวังความแตกต่างระหว่าง<button type=submit>และ<input type=submit>: stackoverflow.com/questions/3543615/…
Pavlo

@ stanislav-mayorov มันใช้งานได้ หากคุณใช้เวอร์ชั่นปัจจุบัน 4.7 คุณต้องปรับเปลี่ยนจาก 3.2.0 (จาก 2012) ลองคำตอบที่อัพเดต
Joao Leme

@JoaoLeme <button type="submit">ทำงานกับรูปแบบใดได้บ้าง
Ryuujo

สิ่งนี้ไม่ทำงานเมื่อฉันต้องการหลีกเลี่ยงการโหลดหน้าซ้ำ
Salvioner

87

HTML

เนื่องจาก<input>องค์ประกอบแสดงค่าของคุณลักษณะค่าเท่านั้นเราจึงต้องจัดการเท่านั้น:

<input type="submit" class="btn fa-input" value="&#xf043; Input">

ฉันกำลังใช้&#xf043;เอนทิตีที่นี่ซึ่งสอดคล้องกับ U + F043 สัญลักษณ์ 'tint' ของ Font Awesome

CSS

จากนั้นเราต้องจัดรูปแบบให้ใช้แบบอักษร:

.fa-input {
  font-family: FontAwesome, 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

ซึ่งจะให้สัญลักษณ์สีอ่อนใน Font Awesome และข้อความอื่น ๆ ในแบบอักษรที่เหมาะสม

อย่างไรก็ตามการควบคุมนี้จะไม่สมบูรณ์แบบพิกเซลดังนั้นคุณอาจต้องปรับแต่งมันด้วยตัวเอง


1
ขอบคุณสำหรับคำตอบมันใช้งานได้ แต่ฉันใช้วิธีนี้ไม่ได้จริงเพราะแบบอักษรมีผลต่อข้อความทั้งหมดของค่า ฉันยังใช้ 'ไอคอนขนาดใหญ่' ในปุ่มอื่น ๆ ... สำหรับผู้ที่จะลองใช้รหัสแบบอักษรอยู่ที่นี่: github.com/FortAwesome/Font-Awesome/blob/master/sass/
......

ฉันคิดว่านั่นคือทั้งหมดที่เราทำได้ที่นี่ ส่วนตัวผมขอแนะนำให้คุณทิ้ง<input>ไอคอนไว้
Pavlo

ทำงานได้ดีฉันต้องใช้ <input type = "submit"> เพราะฉันมีสองการส่งในรูปแบบเดียว
MuniR

สิ่งนี้ดีกว่าการเพิ่ม "fa" ให้กับองค์ประกอบของคลาสเนื่องจาก "fa" จะเปลี่ยนความสูงขององค์ประกอบ
Siwei Shen 申思维

นอกจากนี้คุณอาจใช้font-familyคุณสมบัติรูปแบบอินไลน์เพื่อใช้ในองค์ประกอบ HTML ใด ๆ ที่มีเนื้อหาข้อความ
SaidbakR

54

คุณสามารถใช้แบบฟอร์มตัวอักษรที่ยอดเยี่ยม

<input type="submit" class="btn btn-success" value="&#xf011; Login"/>

นี่คือลิงค์สำหรับ cheatsheet http://fortawesome.github.io/Font-Awesome/cheatsheet/


2
นี่ทำให้วันของฉัน! ขอบคุณ .. สำหรับผู้ใช้คนอื่น ๆ โปรดสังเกตประโยค: คัดลอกและวางไอคอน ( ไม่ใช่ยูนิโค้ด ) โดยตรงจากหน้านี้ลงในการออกแบบของคุณเช่นคัดลอกไอคอนจริงและมันจะทำงาน
PSR

17
<input type="button" class="fa" value="&#xf011; Login"/>โดยไม่ต้อง bootstrap ใช้คลาส fa เพื่อทำให้มันทำงาน
StackHola

2
หากคุณพยายามตั้งค่านี้ด้วย javascript หรือ jQuery ให้ใช้รูปแบบ Unicode:$("input.search").addClass("fa").val("\uf011 Login");
Jamie Chong

2
แม้ว่า Bootstrap ฉันต้องเพิ่ม class = "fa" เพื่อให้ทำงานได้
denis.peplin

12

ในทางเทคนิคแล้วมันเป็นไปไม่ได้ที่จะได้รับ:beforeและ:afterองค์ประกอบหลอกทำงานกับinputองค์ประกอบ

จากW3C :

12.1 The: before and: after pseudo-elements

ผู้เขียนระบุสไตล์และที่ตั้งของเนื้อหาที่สร้างด้วย: before และ: after pseudo-elements ตามที่ชื่อระบุไว้: ก่อนและ: หลังจากองค์ประกอบแบบหลอกระบุตำแหน่งของเนื้อหาก่อนและหลังเนื้อหาต้นไม้เอกสารขององค์ประกอบ คุณสมบัติ 'เนื้อหา' ร่วมกับองค์ประกอบหลอกเหล่านี้ระบุสิ่งที่ถูกแทรก


ดังนั้นฉันจึงมีโครงการที่ฉันส่งปุ่มในรูปแบบของinputแท็กและด้วยเหตุผลบางอย่างที่ผู้พัฒนารายอื่น จำกัด ให้ฉันใช้<button>แท็กแทนปุ่มส่งอินพุตปกติดังนั้นฉันจึงหาวิธีแก้ปัญหาอื่นโดยห่อหุ้มปุ่มไว้ในspanชุด เพื่อposition: relative;แล้ววางตำแหน่งไอคอนอย่างแน่นอนโดยใช้:afterหลอก

หมายเหตุ: ซอฟเดดเดิ้ลใช้รหัสเนื้อหาสำหรับ FontAwesome 3.2.1 ดังนั้นคุณอาจจำเป็นต้องเปลี่ยนค่าของcontentคุณสมบัติตามนั้น

HTML

<span><input type="submit" value="Send" class="btn btn-default" /></span>

CSS

input[type="submit"] {
    margin: 10px;
    padding-right: 30px;
}

span {
    position: relative;
}

span:after {
    font-family: FontAwesome;
    content: "\f004"; /* Value may need to be changed in newer version of font awesome*/
    font-size: 13px;
    position: absolute;
    right: 20px;
    top: 1px;
    pointer-events: none;
}

Demo

ตอนนี้ที่นี่ทุกอย่างอธิบายตนเองที่นี่เกี่ยวกับสถานที่หนึ่งคือpointer-events: none;ฉันเคยใช้เพราะเมื่อวางเมาส์เหนือ:afterเนื้อหาที่สร้างขึ้นหลอกปุ่มของคุณจะไม่คลิกดังนั้นการใช้ค่าnoneจะบังคับให้การกระทำการคลิกผ่านเนื้อหานั้น .

จากMozilla Developer Network :

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

เลื่อนตัวอักษร / ไอคอนหัวใจDemoและดูว่าจะเกิดอะไรขึ้นหากคุณไม่ได้ใช้pointer-events: none;


1
ในขณะที่วิธีการแก้ปัญหาที่เจ๋งมากมันมีข้อเสียใหญ่อย่างหนึ่ง: ตัวชี้เหตุการณ์: IE ไม่สนับสนุน 11 ( caniuse.com/#feat=pointer-events ) เหตุผลที่คุณสมบัติตัวชี้เหตุการณ์ถูกสร้างขึ้นสำหรับองค์ประกอบ SVG (กราฟิกแบบเวกเตอร์) และมันไม่ได้เป็นเทคนิคในรายละเอียด W3C สำหรับองค์ประกอบ HTML อื่น ๆ (แต่wiki.csswg.org/spec/css4-ui#pointer-events ) เบราว์เซอร์ที่ทันสมัยทั้งหมดยกเว้น IE <11 รองรับ
CaspianRoach

9

คุณสามารถใช้คลาสของปุ่มbtn-linkและbtn-xsกับประเภทsubmitซึ่งจะทำให้ปุ่มที่มองไม่เห็นเล็ก ๆ มีไอคอนอยู่ด้านใน ตัวอย่าง:

<button class="btn btn-link btn-xs" type="submit" name="action" value="delete">
    <i class="fa fa-times text-danger"></i>
</button>


1

ด้วยการส่งหลายครั้งเมื่อคุณต้องการค่าของการส่งที่เลือกคุณสามารถทำได้อย่างง่ายดาย เพียงแค่สร้างฟิลด์ที่ซ่อนอยู่ในแบบฟอร์มของคุณและเปลี่ยนค่าของมันขึ้นอยู่กับว่าคลิกปุ่มใด ตัวอย่างเช่นในแบบฟอร์มสมมติว่าคุณมี:

<input type="hidden" id="Clicked" name="Clicked" value="" />
<button type="submit" class="btn btn-success ClickCheck" id="Create"> <i class="fa fa-file-pdf-o"> Create Bill</i></button>
<button type="submit" class="btn btn-success ClickCheck" id="Reset"> <i class="fa fa-times"> Reset</i></button>
<button type="submit" class="btn btn-success ClickCheck" id="StoreData"> <i class="fa fa-archive"> Save</i></button>

ใช้ jQuery:

<script type="text/javascript">
    $(document).ready(function()
    {
        $('.ClickCheck').click(function()
        {
            var ButtonID = $(this).attr('id');
            $('#Clicked').val(ButtonID);
        });
    });
</script>

จากนั้นคุณสามารถเรียกคืนค่าของปุ่มที่คลิกในตัวแปรโพสต์ "คลิก"

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