2012-06-21 77 views
5

Khi nút được tạo, lớp ui-corner-all luôn được áp dụng. Tôi đã thử các cách sau:PrimeFaces: cách ghi đè lên lớp CSS

<p:commandButton id="like" styleClass="ui-corner-right" /> 

nhưng nó không hoạt động. On Firebug, tôi thấy cả hai ui-corner-allui-corner-right:

<div id="form1:like" type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-corner-right"> 

UPDATE 1:

Tiếp theo gợi ý từ JMelnik, cuối cùng tôi đã thành công để thay đổi phong cách của ui-corner-all để ui-corner-right bằng cách thêm đoạn mã sau:

<style type="text/css"> 
    #myForm\:likeButton .ui-corner-all { 
     border-radius: 6px 0px 0px 6px !important; 
    } 
</style> 

và quấn <p:commandButton> bên trong <h:panelGroup> như sau:

<h:form id="myForm"> 
    <h:panelGroup id="likeButton"> 
     <p:commandButton /> 
    <h:panelGroup> 
</h:form> 

UPDATE 2:

Nhờ gợi ý BalusC, những giải pháp sau đây cần được tốt hơn:

<style type="text/css"> 
    .likeButton .ui-corner-all { 
     border-radius: 6px 0px 0px 6px !important; 
    } 
</style> 

<h:panelGroup styleClass="likeButton"> 
    <p:commandButton /> 
<h:panelGroup> 

Trân trọng,

+0

hãy thử tải tệp css của bạn vào cuối ví dụ trong '' và ngoài ra, hãy đảm bảo bạn ghi đè thuộc tính cần thiết được xác định bởi ui-nút ui-widget ui-state-default ui-corner-all ui -button-text-icon-left 'INMO trong trường hợp của bạn tốt hơn bạn không thử thao tác css từ js – Daniel

+0

\ n" \ "không hoạt động trong MSIE. Một nút như vậy khó có thể hoàn toàn độc đáo trong quan điểm của bạn. Thay vì sử dụng một tên lớp. – BalusC

+0

Liên quan: http://stackoverflow.com/questions/8768317/how-do-i-re-write-those-class-defined-in-primefaces-css và http://stackoverflow.com/questions/5878692/how -to-use-jsf-generated-html-phần tử-id-trong-css-selectors – BalusC

Trả lời

5

Sử dụng CSS override cách tiêu chuẩn.

Bao gồm * .css trong trang của bạn, nơi bạn xác định lại các lớp ui-corner-allui-corner-right.

.ui-corner-all { 
    //ovverides to nothing, you can also define any properties you want here 
} 

.ui-corner-right { 
    //define properties which would override unwanted behaviour 
} 

Bạn cũng có thể áp dụng lớp css bổ sung sẽ ghi đè các thuộc tính không mong muốn.

+0

Hmm ... bạn có nghĩa là tôi phải ghi đè các thuộc tính của 'ui-corner-all' với' ui-corner-right '? Có cách nào để xóa 'ui-corner-all' khỏi HTML được tạo không? –

+1

Bạn có thể sử dụng javascript/jquery để "removeClass ('ui-corner-all')" trên các mục có nó. Đó là một chút lộn xộn mặc dù và phụ thuộc vào người dùng có javascript được kích hoạt. Bạn cũng có thể sử dụng firebug để lấy các kiểu CSS mà "ui-corner-all" áp dụng và sau đó ghi đè tất cả chúng trong CSS của riêng bạn. Chỉ cần lặp lại những gì JMelnik đã nói ở đây. – ConorLuddy

+1

@CLuddy cảm ơn tôi sẽ thử ngay bây giờ :) –

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