1

我有一个皮肤文件,其中包含:

< asp:TextBox runat="server" CssClass="FixedFont"/>

在与皮肤文件相同的文件夹中,是以下 css 文件。Css 文件包含:

.FixedFont
    {
    font-family:Courier;    
    }

最后,我有一个 ASPX 页面,其中包含以下控件:

<asp:TextBox ID="TextBox1" runat="server">Test</asp:TextBox>

当我在设计模式下查看ASPX页面或运行页面时,我看到样式上的font-family属性确实影响了文本框控件,即改为Courier。

但是,我还想做的是在我的 ASPX 页面上定义本地样式,

.DefaultWidth
    {
    width: 300px;
    }

...并让我所有的 TextBoxes 具有相同的宽度。

如果我将 TextBox1 的 CssClass 属性设置为“DefaultWidth”...

<asp:textbox ID="TextBox1" CssClass="DefaultWidth">Hello</asp:TextBox>

...文本框的宽度更改为 300 像素,但我失去了应用修复字体 Courier 样式的皮肤效果。

要同时应用 DefaultWidth 和固定字体文本框效果,我必须将 CSSClass 属性设置为“DefaultWidth FixedFont”,在我看来,这似乎破坏了首先拥有皮肤的优势。我想我希望效果是累积的,除非我添加了与皮肤冲突的样式,在这种情况下,我希望将本地类应用于皮肤的效果。例如,如果我应用了第二个类 Class2,除了其他效果外,它还包括字体系列规范,我希望 Class2 中指定的字体覆盖 FixedFont 样式中的字体。但这似乎不是这里发生的事情。

处理这种情况的最佳方法是什么?我想经常想要有一系列宽度都匹配的文本框,所以我想除了在皮肤文件中使用应用于控件类型的效果之外,我还经常想在控件上指定一个 CssClass。

解决方案不是在皮肤本身中使用 CSS 吗?在维护方面,这似乎也有缺点。

我遇到的第二个问题是,如果我用以下类声明样式表..

.Button
{
    background-image: url('/images/button.gif')
}

...并将 ASP 按钮的 CSSClass 属性设置为“按钮”,我看到图像平铺在按钮上。

但是,如果我在皮肤文件中输入以下代码

它找不到图像。

图片文件夹是网站根目录下的第一级文件夹。

知道为什么它没有拾取图像。我尝试过其他各种途径,但那是唯一对我有意义的途径。

顺便说一句,图像在设计模式下应用,但在运行时消失。

4

1 回答 1

0

我不知道我是否理解您的问题,但正如我从这里看到的那样,您应该以“本地”风格声明这一点:

textbox.fixedfont { width:200px; }

或者如果您确定要影响具有相同宽度的每个文本框,则只是对每个文本框,与皮肤无关...

textbox { width:200px; }

如果这不是您所要求的,请更清楚。

于 2009-08-27T04:32:07.500 回答