2010-08-01 53 views
49

Tôi đã sử dụng nút Giao diện người dùng jQuery trên tất cả các trang của mình, tuy nhiên tôi chưa tìm thấy cách nào có vẻ là một vấn đề đơn giản. Tôi muốn có một số các nút của tôi để được nhỏ hơn khác, điều này nên càng đơn giản như cài đặt CSS của văn bản nút để một cái gì đó như thế nào, font: .8em; Tuy nhiên jQuery UI mất phần tử DOM của bạn và kết thúc tốt đẹp nó:Thay đổi kích thước Nút giao diện người dùng jQuery?

<button class="ui-button ui-button-text-only ui-widget ui-state-default ui-corner-all"> 
    <span class="ui-button-text">Button Label</span> 
</button> 

Vì vậy, nếu tôi có một jQuery <button class="small-button">Small button!</button> sẽ đặt văn bản trong một khoảng con. Bất kỳ kích thước phông chữ nào cho lớp small-button đều sẽ bị bỏ qua.

Có một cách để giải quyết vấn đề này mà không cần phải bẻ khóa cách jQuery tạo nút. Bất kỳ ý tưởng?

Trả lời

35

Nếu đó là kiểu dáng ui-button-text với font-size trực tiếp, bạn có thể ghi đè nó ở mức cao hơn bằng cách áp dụng! Chẳng hạn như:

.small-button { 
    font-size: .8em !important; 
} 

EDIT: cố gắng đặt một kiểu CSS trực tiếp trên .ui-button-text kế thừa:

.ui-button-text { 
    font-size: inherit !important; 
} 

này cũng nên quan trọng trên .small-button không liên quan!.

+0

này đã không làm việc không may. Lớp nút nhỏ đang treo phần tử nút và không ghi đè lên khoảng trống bên trong. –

+0

Hãy xem bản chỉnh sửa của tôi, điều đó có thể giúp bạn. Sẽ rất hữu ích khi xem ví dụ đầy đủ của bạn trong thực tế (với tất cả CSS được áp dụng cho nó). Im sẽ thu thập rằng bạn có thể đang sử dụng tệp CSS giao diện người dùng jQuery cho nút này, điều này có thể được giải quyết bằng cách sửa đổi CSS trực tiếp để có được nhu cầu mong muốn của bạn. – rickp

13

này giúp làm giảm chiều cao của nút cho tôi (Smoothness theme mặc định là line-height 1,4):

.ui-button .ui-button-text 
{ 
line-height: 1.0; 
} 
5

Bạn có thể tạo các nút kích thước khác nhau bằng cách thay đổi các miếng đệm của phần tử span được chứa trong jQuery đánh dấu tạo ra, như Tim gợi ý.

này đánh dấu/JavaScript ...

$(document).ready(function(){ 
    $("button").button(); 
}); 

<button id="some-id" class="some-class">Some Button</button> 

Kết quả trong đánh dấu chuyển này ...

<button class="some-class ui-button ui-widget ui-state-default ui-corner-all 
      ui-button-text-only" id="some-id" role="button" aria-disabled="false"> 
<span class="ui-button-text">some button</span> 
</button> 

nào chắc chắn nhất bao gồm các idclass thẻ mà được cung cấp ban đầu. Bạn có thể sửa đổi kích thước của các nút bằng cách thêm phần đệm vào phần tử span.ui-button-text.

như vậy ..

button#some-id .ui-button-text { 
    /* padding values here to your liking */ 
} 
3

Chỉ cần thay đổi nút font-size;).

<asp:Button ID="btn2" runat="server" Text="Button" style="font-size:10px" /> 

Bây giờ thêm một kịch bản jquery vào nút

<script type="text/javascript" language="javascript"> 
     $(document).ready(function() { 
      $('input:submit, #btn2').button(); 
     }); 
    </script> 

Good Luck. ;)

+0

Khi sử dụng ID duy nhất của phần tử, bộ chọn 'đầu vào: gửi' chỉ là chi phí không cần thiết .. –

3

Tôi đã sử dụng kết hợp hai đề xuất ở trên. Thật dễ dàng để tinh chỉnh giao diện người dùng theo cách tôi thích.

Để stylesheet trang của thêm:

.ui-button .ui-button-text 
{ 
    padding: 0px 11px 0px 21px !important; 
    font-size: .72em !important; 
} 
6

Đây là những gì tôi sử dụng trong trang web của tôi để thiết lập font-kích thước sao cho kích thước nút của tôi cũng giống như trên jQuery UI website.Điều này làm việc bởi vì nó chính xác như thế nào jQuery UI website hiện nó!

/* percentage to px scale (very simple) 
80% = 8px 
100% = 10px 
120% = 12px 
140% = 14px 
180% = 18px 
240% = 24px 
260% = 26px 
*/ 

body 
{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size:10px; 
} 

Bằng cách đặt kích thước phông chữ cho mọi thứ khác trở nên tầm thường là 100% = 10px.

Chỉ cần quan sát hiệu ứng xếp tầng khi sử dụng tỷ lệ phần trăm - 100% phần tử con sẽ bằng kích thước phông chữ của phần tử gốc.

1

Giải pháp của tôi cần phải làm việc trên các mục trình đơn mới cũng

Đầu tiên để chọn các yếu tố phù hợp cho cả menu và nút

.menu>.ui-button-icon-only, 
.ui-button{ 
font-size:0.8em !important; 
} 

Và thứ hai như trên để buộc inheiritance

.ui-button-text { 
font-size: inherit !important; 
} 
0

Sử dụng jQuery khi chạy, không sửa đổi CSS. Điều này giúp bạn linh hoạt hơn nhiều.

$(function() { 
    $("input[type=button]").css("font-size", "0.8em"); 
}); 
1

Tôi đã làm điều này và hoạt động tốt.

$("button").button("font-size", "0.8em"); 
+0

Tôi không nghĩ rằng nó sẽ hoạt động. Tôi đã thử nó với jQuery 1.11.2 và nó không thành công. Đây phải là cách chính xác: $ ("button") .button(). Css ("font-size", "0.8em"); –

0

<input type="submit" value="Mostrar imágenes">

và css của tôi:

input[type="submit"] { 
color: #000; 
border: 0 none; 
cursor: pointer; 
height: 30px; 
width: 150px; } 
Các vấn đề liên quan