从telerik控件中删除默认的内联样式

时间:2011-11-01 14:21:28

标签: asp.net css attributes telerik default-value

使用Telerik控件时,例如我没有为文本框指定宽度,telerik添加了内联属性

style="width: 125px"

有没有办法阻止telerik添加这样的默认值?

(注意:这不是Removing all CSS from telerik controls的默认值,它询问如何删除默认样式表而不是内联样式。

4 个答案:

答案 0 :(得分:0)

我不确定,但您可以尝试搜索样式表以查找输入的默认宽度规范。除此之外,您可以使用!important覆盖属性并设置宽度。

<telerik:RadTextBox ID="RadTextBox1" runat="server" style="width:200px !important;" ... >

修改

尝试在页面或样式表中添加这样的样式。这可能不是100%,但应该接近:

.RadInput .RadInput_Sunset { /* replace "_Sunset" with whatever skin you're using */
    width: auto; 
}

修改

如果您只需要设置一个控件的样式,请尝试以下操作:

#ClientID_OF_INPUT { 
    width: auto !important;
} 

答案 1 :(得分:0)

答案 2 :(得分:0)

这是我的最终实现,适用于RadInput和RadComboBox。该函数需要适应每个控件,因为telerik将样式放在不同的地方。

function removeWidths (sender) {
    //remove only the width style from the inline style collection
    sender._originalTextBoxCssText && (sender._originalTextBoxCssText = sender._originalTextBoxCssText.replace(/(^|[^-])width\s?:\s?[\w|\.]+\s?;/i, "$1"));
    sender.updateCssClass && sender.updateCssClass();
    if(sender.constructor.__typeName == "Telerik.Web.UI.RadComboBox") {
        $(sender._inputDomElement).closest(".RadComboBox").removeAttr("style");
    }
},

答案 3 :(得分:0)

有同样的问题,我不是特别的粉丝!重要的覆盖或JavaScript解决方案。

深入RadInputControl我可以看到Unit.Pixel(160)是默认的Width,但前提是控件的RenderMode不是Lightweight,所以切换到Lightweight删除显式内联宽度,否则如果这不是RadTextbox的选项,我发现如果将Columns属性设置为0,则只输出

style="width:;"

这对我来说看起来不合适,所以我猜大多数浏览器都会忽略这一点,但我自己并没有对它进行过广泛的测试。