จะทำให้ลิงก์ <a href= sleepy "> เป็นปุ่มได้อย่างไร?


102

ฉันมีภาพปุ่มนี้:
ป้อนคำอธิบายภาพที่นี่

ฉันสงสัยว่ามันจะเป็นไปได้ไหมที่จะทำให้<a href="">some words</a>ลิงค์ที่เรียบง่ายและมีสไตล์ปรากฏเป็นปุ่มนั้น?

ถ้าเป็นไปได้ฉันจะทำอย่างไร?



1
ฉันเดาว่าใช้ CSS;) google.com.ua/search?q=style+anchor+tag+like+button
antyrat

5
ผู้ใช้ควรทราบด้วยรูปลักษณ์ของเว็บอินเตอร์เฟสว่าลักษณะการทำงานเป็นอย่างไร ... ดังนั้นจึงไม่ควรใช้รูปลักษณ์ของปุ่มเป็นลิงก์และไม่ควรใช้ลักษณะที่มองเห็นของลิงก์เป็นปุ่ม
Antagonist

2
โดยปกติคุณต้องมีภาพมากกว่าหนึ่งภาพสำหรับปุ่ม: Standard, hovered, press, active มิฉะนั้นจะรู้สึกไม่เป็นธรรมชาติ
user123444555621

ฉันขอแนะนำให้คุณเพิ่มcursor: pointer;ใน css เพื่อให้เคอร์เซอร์มีลักษณะเชื่อมโยงมือด้วยนิ้วชี้ชี้เนื่องจากสิ่งนี้เกิดขึ้นกับปุ่มปกติและเป็นตัวช่วยที่มีประโยชน์สำหรับผู้ใช้
R. Schreurs

คำตอบ:


109

ใช้ CSS:

.button {
    display: block;
    width: 115px;
    height: 25px;
    background: #4E9CAF;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: bold;
    line-height: 25px;
}
<a class="button">Add Problem</a>

http://jsfiddle.net/GCwQu/


สิ่งนี้ใช้ได้กับฉันหากฉันใช้กับaแท็กโดยตรง ( a {display: block ...}) ซึ่งไม่สามารถยอมรับได้ คุณมีความคิดหรือไม่ว่าทำไมclassแอตทริบิวต์ภายในaแท็กไม่ทำงาน :( ฉันใช้ Firefox 27 ฉันลองa.button {...}แล้ว แต่ก็ไม่ได้ผลเช่นกัน
just_a_girl

4
หากคุณใช้ bootstrap คุณสามารถ <a class="btn btn-info"> </a> และใช้สไตล์ bootstrap ที่มีอยู่และหลีกเลี่ยงการกำหนดรูปแบบใหม่
stcorbett

หากคุณได้รับการขีดเส้นใต้ในปุ่มของคุณให้เพิ่มtext-decoration:none
Rohit Chemburkar

99

ตรวจสอบเอกสารของเงินทุน มีคลาส.btnอยู่และใช้งานได้กับaแท็ก แต่คุณต้องเพิ่ม.btn-*คลาสเฉพาะด้วย.btnคลาส

เช่น: <a class="btn btn-info"></a>


1
เยี่ยมมาก ฉันใช้ Bootstrap และไม่ทราบว่า P
Felipe Carminati

13
ใน bootstrap เวอร์ชันล่าสุดคุณต้องมีคลาส btn- * เฉพาะกับคลาส btn เช่น <a class="btn btn-info"> </a>
stcorbett

14

คุณสามารถห่อปุ่มด้วยลิงค์ได้อย่างง่ายดาย <a href="#"> <button>my button </button> </a>


19
HTML5 ไม่ถูกต้องเพื่อน
hamstar

2
พวกเขาควรเปลี่ยนข้อมูลจำเพาะของสิ่งนี้ มันเข้าท่าที่สุดสำหรับฉัน
Lonnie Best

14

สิ่งนี้จะคล้ายปุ่ม:

a.LinkButton {
  border-style: solid;
  border-width : 1px 1px 1px 1px;
  text-decoration : none;
  padding : 4px;
  border-color : #000000
}

ดูhttp://jsfiddle.net/r7v5c/1/สำหรับตัวอย่าง


1
เพิ่มเส้นขอบรัศมี: 5px; จะทำให้รูปลักษณ์สมบูรณ์
vdbuilder

10
  1. ลองสิ่งนี้:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    <div class="container">
      <h2>Button Tags</h2>
      <a href="#" class="btn btn-info" role="button">Link Button</a>
      <button type="button" class="btn btn-info">Button</button>
      <input type="button" class="btn btn-info" value="Input Button">
      <input type="submit" class="btn btn-info" value="Submit Button">
    </div>

  2. คุณสามารถใช้hrefแท็กไลน์จากที่นั่น

    <a href="URL" class="btn btn-info" role="button">Button Text</a>
    

5

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

a.button {
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
}

สังเกตว่าอาจใช้ไม่ได้กับ IE


สำหรับสถานะปัจจุบันของการรองรับเบราว์เซอร์โปรดดูcaniuse.com/#feat=css-appearance ; โปรดทราบว่าเบราว์เซอร์อาจแสดงผลappearance: buttonต่างจากปุ่มเนทีฟ (อย่างน้อยเมื่อฉันตรวจสอบบน Chrome 78)
SOLO

นี่คือสิ่งที่ฉันกำลังมองหา แต่มันใช้ไม่ได้กับ<a>Chrome โดยเฉพาะ ทดสอบแล้ว<span>และใช้งานได้ดี
Hashbrown

4

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

นี่คือสิ่งที่ฉันได้ทำเพื่อแก้ไข:

HTML:

<a href="http://www.google.com" class="link_button2">My button</a>

CSS:

.link_button2 {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  border: solid 1px #1A4575;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
  background: #3A68A1;
  color: #fee1cc;
  text-decoration: none;
  padding: 8px 12px;
  text-decoration: none;
  font-size: larger;
}

a.link_button2:hover {
  text-decoration: underline;
  background: #4479BA;
  border: solid 1px #20538D;

  /* optional different shadow on hover
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  */

}

JSFiddle: https://jsfiddle.net/adamovic/ovu3k0cj/


2
  • ใช้background-imageคุณสมบัติ CSS บน<a>แท็ก
  • ตั้งค่าdisplay:blockและปรับwidthและheightใน CSS

นี้ควรทำเคล็ดลับ


1

ใช่คุณสามารถทำได้

นี่คือตัวอย่าง:

a{
    background:IMAGE-URL;
    display:block;
    height:IMAGE-HEIGHT;
    width:IMAGE-WIDTH;
}

แน่นอนคุณสามารถปรับเปลี่ยนตัวอย่างข้างต้นตามความต้องการของคุณ สิ่งสำคัญคือทำให้มันปรากฏเป็นบล็อก ( display:block) หรือบล็อกแบบอินไลน์ ( display:inline-block)


คุณควรให้การแสดงผล: อินไลน์; และแทนที่จะใช้ความสูงและความกว้างคุณควรใช้ช่องว่างภายในและความสูงของเส้นเพื่อปรับขนาดของจุดยึด
ปฏิปักษ์

@Antagonist: เนื่องจาก OP ต้องการภาพเป็นพื้นหลังและเขามักจะใช้แบบเดียวกันเสมอฉันไม่เห็นว่าทำไมเขาไม่ควรใช้ความสูงและความกว้างเฉพาะของภาพนั้น แต่ฉันเดาว่า OP จะลองใช้วิธีแก้ปัญหาที่แนะนำทั้งหมดและเลือกวิธีที่ดีที่สุดสำหรับเขา
r0skar

สิ่งที่ฉันกำลังพูดคือใช้คุณสมบัติ css อื่นเพื่อให้ได้สิ่งเดียวกันและรักษาคุณสมบัติการแสดงผลดั้งเดิมให้เป็นแบบอินไลน์ ...
Antagonist

1

สำหรับ HTML พื้นฐานคุณสามารถเพิ่มแท็ก img โดยใช้ src ที่กำหนดให้กับ URL รูปภาพของคุณภายใน HREF (A)

<a href="http://www.google.com"><img src="http://problemio.com/img/ui/add_problem.png" /></a>

1

คุณสามารถสร้างคลาสสำหรับองค์ประกอบจุดยึดที่คุณต้องการแสดงเป็นปุ่ม

เช่น:

การใช้รูปภาพ:

.button {
   display:block;
   background: url('image');
   width: same as image
   height: same as image
}

หรือใช้วิธี CSS บริสุทธิ์:

.button {
    background:#E3E3E3;
    border: 1px solid #BBBBBB;
    border-radius: 3px 3px 3px 3px;
}

อย่าลืมซ่อนข้อความด้วยสิ่งต่อไปนี้

text-indent: -9999em;

แกลเลอรีที่ยอดเยี่ยมของปุ่ม CSS ล้วนอยู่ที่นี่ และคุณยังสามารถใช้ตัวสร้างปุ่ม css3

มีสไตล์และตัวเลือกมากมายที่นี่

โชคดี


1

คุณมีสองทางเลือกสำหรับความสม่ำเสมอ

  1. ใช้แท็กเฉพาะสำหรับกรอบงานและใช้ทั่วทั้งเว็บไซต์
  2. ใช้ JavaScript เพื่อจำลองลิงก์บนองค์ประกอบปุ่มจากนั้นให้ปุ่มนั้นสอดคล้องกับลักษณะปุ่มของเบราว์เซอร์ การแฮ็กแบบปุ่ม css เหล่านั้นจะไม่แม่นยำ

.

<button onclick="location.href = 'Homepage.html'; return false;">My Button</button>

return false; คือการป้องกันพฤติกรรมเริ่มต้นของการคลิกปุ่ม


1

เพียงแค่ใช้การออกแบบปุ่ม css ตามปกติและใช้ CSS นั้นกับลิงก์ (ในลักษณะเดียวกับที่คุณทำกับปุ่ม)

ตัวอย่าง:

<a href="#" class="stylish-button">Some words</a>

<style type="text/css">
.stylish-button {
    -webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    -moz-box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    color:#333;
    background-color:#FA2;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    border:none;
    font-size:16px;
    font-weight:700;
    padding:4px 16px;
    text-shadow:#FE6 0 1px 0
}
</style>

ฉันได้ทำสิ่งนี้ในโครงการที่ผ่านมาและ IE ปฏิเสธที่จะทำงาน ฉันได้ทดสอบรหัสนี้แล้ว แต่ฉันต้องการแจ้งข้อกังวลที่ต้องการเหตุผลเพิ่มเติม
MEM

0

สำหรับผู้ที่มีปัญหาหลังจากเพิ่ม active และ focus ให้ class หรือ id name ไปที่ปุ่มของคุณแล้วเพิ่มลงใน css

ตัวอย่างเช่น

// รหัส html

<button id="aboutus">ABOUT US</button>

// รหัส css

#aboutus{background-color: white;border:none;outline-style: none;}

-1

ทดสอบกับ Chromium 40 และ Firefox 36

<a href="url" style="text-decoration:none">
   <input type="button" value="click me!"/>
</a>

1
นี่ไม่ใช่ HTML ที่ถูกต้อง
Javier

-1

ลองใช้รหัสนี้:

<code>

    <a href="#" class="button" > HOME </a>

    <style type="text/css">

        .button { background-color: #00CCFF; padding: 8px 16px; display: inline-block; text-decoration: none; color: #FFFFFF border-radius: 3px;}

        .button:hover { background-color: #0066FF; }

    </style>

</code>

ดูสิ่งนี้ (จะอธิบายวิธีการทำ) - https://youtu.be/euti4HAJJfk


ยินดีต้อนรับสู่ StackOverflow! โปรดใส่รหัสที่เกี่ยวข้องทั้งหมดในโพสต์ของคุณและอย่าเพิ่งใส่ลิงก์ไปยังเว็บไซต์ภายนอก ลิงก์เป็นลิงก์ที่ดีสำหรับข้อมูลเพิ่มเติมแต่โพสต์ของคุณควรอยู่คนเดียวจากแหล่งข้อมูลอื่นลิงก์อาจเปลี่ยนแปลงหรือ "ตาย" ได้ เพื่อนโปรแกรมเมอร์ควรสามารถแก้ไขปัญหาที่มีรายละเอียดในคำถามได้โดยตรงจากคำตอบของคุณ
Zachary Espiritu

-3

ง่ายๆดังนี้:

<a href="#" class="btn btn-success" role="button">link</a>

เพียงเพิ่ม "class =" btn btn-success "& role = button


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