Change Style/Look of Asp:CheckBox using CSS

前端 未结 10 962
醉梦人生
醉梦人生 2020-12-10 13:55

I want to change the standard \"3D\" look of the standard asp.net checkbox to say solid 1px. If I try to apply the styling to the Border for example it does just that - draw

相关标签:
10条回答
  • 2020-12-10 14:16

    None of the above work well when using ASP.NET Web Forms and Bootstrap.

    I ended up using Paul Sheriff's Simple Bootstrap CheckBox for Web Forms

    <style>
        .checkbox .btn, .checkbox-inline .btn {
        padding-left: 2em;
        min-width: 8em;
        }
        .checkbox label, .checkbox-inline label {
        text-align: left;
        padding-left: 0.5em;
        }
        .checkbox input[type="checkbox"]{
            float:none;
        }
    </style>
    
    
    <div class="form-group">
        <div class="checkbox">
            <label class="btn btn-default">
                <asp:CheckBox ID="chk1" runat="server" Text="Required" />
            </label>
        </div>
    </div>
    

    The result looks like this...

    0 讨论(0)
  • 2020-12-10 14:17

    Not sure that it's really an asp.net related question.. Give this a shot, lots of good info here:

    http://www.456bereastreet.com/archive/200409/styling_form_controls/

    0 讨论(0)
  • 2020-12-10 14:18

    I think the best way to make CheckBox looks really different is not to use checkbox control at all. Better use your own images for checked/unchecked state on-top of hyperlink or image element. Cheers.

    0 讨论(0)
  • 2020-12-10 14:18

    Simplest best way, using the ASP checkbox control with custom design.

     chkOrder.InputAttributes["class"] = "fancyCssClass";
    

    you can use something like that.. hope that helps

    0 讨论(0)
  • 2020-12-10 14:19

    Why not use Asp.net CheckBox button with ToggleButtonExtender available from the Ajax control toolkit.

    0 讨论(0)
  • 2020-12-10 14:24

    Well, I went through every solution I could find.

    The Ajax Control Toolkit works, but it creates a weird html output with all kinds of spans and other styling that is hard to work with.

    Using css styling with the ::before tags to hide the original control's box would work, but if you placed runat=server into the element to make it accessible to the code-behind, the checkbox would not change values unless you actually clicked in the original control.

    In some of the methods, the entire line for the label would end up under the checkbox if the text was too long for the viewing screen, or would end up underneath the checkbox.

    In the end, (on the adice of @dimarzionist's answer here in this page) I used an asp.net ImageButton and used the codebehind to change the image. With this solution I get nice control over the styles and can determine whether the box is checked from the codebehind.

    <asp:ImageButton ID="mycheckbox" CssClass="checkbox"  runat="server" OnClick="checkbox_Click" ImageUrl="unchecked.png" />
    <span class="checkboxlabel">I have read and promise to fulfill the <a href="/index.aspx">rules and obligations</a></span>
    

    And in the code-behind

        protected void checkbox_Click(object sender, ImageClickEventArgs e) {
            if (mycheckbox.ImageUrl == "unchecked.png") {
                mycheckbox.ImageUrl = "checked.png";
                //Do something if user checks the box
            } else {
                mycheckbox.ImageUrl = "unchecked.png";
                //Do something if the user unchecks the box
            }
        }
    

    What's more, is with this method, The <span> you use for the checkbox's text will wrap perfectly with the checkbox.

    .checkboxlabel{
        vertical-align:middle;
        font-weight: bold;
    }
    .checkbox{
        height: 24px;  /*height of the checkbox image*/
        vertical-align: middle;
    }
    
    0 讨论(0)
提交回复
热议问题