2009-11-28 26 views
5

Nút biểu mẫu có hình ảnh 170x60 cho trạng thái không được nhấn và nhấn. Những gì tôi dường như không thể làm là đến đó để có văn bản trong nút. Tôi thực sự muốn tránh phải chỉnh sửa hình ảnh và viết văn bản trực tiếp. Hiện tại tôi đang sử dụng:Nút biểu mẫu có hình ảnh và văn bản tùy chỉnh

<input type="image" src="img/button_normal.png" 
width="175" height="60" onmousedown="this.src='img/button_pressed2.png'" 
onmouseup="this.src='img/button_normal.png'"> 

Tôi thấy rằng không thể thực hiện công việc này với văn bản trên đầu trang (theo như tôi đã thử). Vì vậy, sau đó tôi đã thử sử dụng <button> nhưng tôi không thể làm cho nó hoạt động.

Tôi đã có thể đặt văn bản lên hình ảnh ở trên, nhưng văn bản ở đâu, nút không thể nhấp được, nút này không hoạt động.

Giải pháp cho vấn đề này là gì?

Trả lời

2

Vậy tại sao không chỉ chỉnh sửa hình nền trên nút thông thường?

<script type="text/javascript" src="picker/js/jquery.js"></script> 
<!-- some time later --> 
<input type="button" src="img/button_normal.png" 
width="175" height="60" value="Some Text" 
onmousedown="$(this).css({'background-image': 'img/button_pressed2.png'});" 
onmouseup="$(this).css({'background-image': 'img/button_normal.png'});"> 

Điều đó sẽ cho phép bạn đặt hình ảnh vào nút có một số lớp phủ văn bản.

+1

Quên đề cập, đặt thuộc tính giá trị của đầu vào thành bất kỳ văn bản nào bạn muốn hiển thị. Đã sửa lỗi ở trên. – Inaimathi

+0

Làm điều đó chỉ cần thực hiện một nút bình thường với văn bản giá trị:/ – smont

+1

Bạn có thể sử dụng CSS cho việc này. '.mybutton {background-image: url ('normal')} .mybutton: active {background-image: url ('pressed.png')}' – caiosm1005

5

Tại sao không chỉ sử dụng css và loại "gửi"?

<input type="submit" class="myButton" value="Label goes here" /> 

Sau đó, trong CSS của bạn:

input.myButton{ 
    background-image: url('img/button_normal.png'); 
    border-style:none; 
} 
input.myButton:hover{ 
    background-image: url('img/button_pressed2.png'); 
} 
input.myButton:active{ 
    background-image: url('img/button_normal.png'); 
} 

này sẽ chỉ làm việc tốt với các "nút" loại, và có một lợi thế hơn các phiên bản Javascript vì Javascript không nhất thiết phải được kích hoạt.

Để làm công việc này đúng trong IE, bạn có thể sử dụng this script để làm cho IE tự xử :)

+0

Điều đó hoàn toàn không hiển thị hình ảnh.Chỉ là một nút nhìn bình thường với giá trị của tôi bên trong nó. – smont

+0

Bạn đang sử dụng trình duyệt nào? Tôi đã thử nghiệm nó trong Firefox và Epiphany (dựa trên webkit). Tôi không có IE: - \ –

+0

Đây là ví dụ: http://supremerule.net/testing/button-test.html –

6

Các <input type="image"> có nghĩa là để có loại một bản đồ hình ảnh như nút. Khi được gửi, nó sẽ gửi thông số name.xname.y đến phía máy chủ biểu thị vị trí chính xác nơi khách hàng đã nhấn trên bản đồ hình ảnh.

Bạn rõ ràng không muốn có điều đó. Bạn chỉ muốn có một nút có hình ảnh . Đối với điều đó, bạn thường sử dụng thuộc tính CSS background-image cho (hoặc, thuận tiện hơn, thuộc tính background).

dụ cơ bản:

.mybutton { 
    background-image: url('normal.png'); 
    width: 175px; 
    height: 60px; 
} 
.mybutton.pressed { 
    background-image: url('pressed.png'); 
} 

với nút bình thường như sau:

<input 
    type="submit" 
    class="mybutton" 
    value="" 
    onmousedown="this.className+=' pressed'" 
    onmouseup="this.className=this.className.replace(' pressed', '')" 
> 

Sửa: cho downvoters hoặc nitpickers JS/jQuery: IE lte 7 không không hỗ trợ :hover cũng không phải :active giả mạo trên các phần tử khác so với phần tử a. Các giải pháp trên là crossbrowser tương thích.

+0

javascript trong này là thừa. Nếu bạn chỉ cần tạo lớp CSS thứ hai .mybutton: hoạt động, nó có cùng tác dụng nhưng không yêu cầu Javascript. –

+0

Tại sao bạn downvoting cho một giải pháp tương thích crossbrowser? IE lte 7 không hỗ trợ những giả mạo đó. – BalusC

+0

Ồ, tốt rồi. Nó hoạt động, Cảm ơn! – smont

Các vấn đề liên quan