2

画像とカスタムラベルを使用してJSFボタンを実装したいと思います。私はこのコードをテストしました:

<h:commandButton id="savesettings" styleClass="avesettings" value=" Save Settings " action="#{GeneralController.updateDBSettings}" rendered="true" update="growl">
    <f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>

.avesettings {
    background-image: url('../images/small.png');
}

結果は次のとおりです。

ここに画像の説明を入力してください

この2番目のコードもテストしました。

<h:commandButton id="savesettings" image="resources/images/first.png" value=" Save Settings " action="#{GeneralController.updateDBSettings}" rendered="true" update="growl">
    <f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>

ラベルなしでこの結果が得られます:

ここに画像の説明を入力してください

ボタン属性として定義された背景画像とカスタムラベルを使用してJSFボタンを作成するのを手伝ってもらえますか?

4

4 に答える 4

2

使用した最初の方法、styleClass="avesettings"つまり CSS スタイルを使用することが唯一可能な方法です。これは、image 属性を指定すると、input 要素が画像になるためです。

ドキュメントも参照

したがって、ボタンに高度なスタイリング手法を使用するのが最善の策です。それについては、次の記事を参照してください。

于 2012-08-19T20:19:52.357 に答える
1

commandButton タグの「image」属性は試しましたか?

于 2012-08-19T15:15:44.837 に答える
1

これを実装する 1 つの方法は、スタイル シートで jsf リソースとしてイメージをロードすることです。

    <style type="text/css">
        .imageButton
        {
            background-image:url(#{resource['images/button.png']});
        }
    </style>

次に、関連する commandButton styleClass を xhtml に設定します。

    <h:commandButton value="Submit" styleClass="imageButton" action="#{...}"/>

ファイル button.png をリソース フォルダー (resources/images/button.png) の下に置き、リソース フォルダーが WEB-INF フォルダーの隣にあることを確認します。

または、画像を commandButton のテキストの横にアイコンとして表示する場合は、css を少しいじることができます。

        .imageButton
        {
            padding: ...
            border: ...
            color: ...
            background: [<'background-color'> || <'background-image'> || <'background-repeat'> || <'background-attachment'> || <'background-position'>] 
        }
于 2012-08-24T08:25:45.283 に答える
1

次の JSF/CSS で問題が解決するはずです。

JSF (最初の例と同じ):

<h:commandButton id="savesettings" styleClass="avesettings" value="Save Settings" action="#{GeneralController.updateDBSettings}" rendered="true" update="growl">
    <f:ajax render="@form" execute="@form"></f:ajax>
</h:commandButton>

CSS(適応):

.avesettings {
    background: url('../images/small.png') no-repeat;
    cursor: pointer;
    width: 126px;
    height: 41px;
    border: none;
}

css の幅と高さは、画像の幅と高さに合わせる必要があります。また、JSFテンプレートに直接ではなく、外部cssファイルにcssがあります。

于 2012-08-24T09:20:31.837 に答える