我有一个皮肤文件,其中包含:
< 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 属性设置为“按钮”,我看到图像平铺在按钮上。
但是,如果我在皮肤文件中输入以下代码
它找不到图像。
图片文件夹是网站根目录下的第一级文件夹。
知道为什么它没有拾取图像。我尝试过其他各种途径,但那是唯一对我有意义的途径。
顺便说一句,图像在设计模式下应用,但在运行时消失。