我有一个包含以下内容的皮肤文件:
< asp:TextBox runat="server" CssClass="FixedFont"/>
在与Skin文件相同的文件夹中,是以下css文件。 Css文件包含:
.FixedFont
{
font-family:Courier;
}
最后,我有一个ASPX页面,其中包含以下控件:
<asp:TextBox ID="TextBox1" runat="server">Test</asp:TextBox>
当我在设计模式下查看ASPX页面或运行页面时,我看到样式上的font-family属性确实影响了文本框控件,即它被更改为Courier。
但是,我还想做的是在我的ASPX页面上定义一个本地样式,
.DefaultWidth
{
width: 300px;
}
...并拥有我的所有TextBox,以便它们具有相同的宽度。
如果我将TextBox1的CssClass属性设置为“DefaultWidth”...
<asp:textbox ID="TextBox1" CssClass="DefaultWidth">Hello</asp:TextBox>
...文本框的宽度更改为300px,但我失去了应用修复字体Courier样式的皮肤效果。
要获得要应用的两种效果,DefaultWidth和固定字体文本框效果,我必须将CSSClass属性设置为“DefaultWidth FixedFont”,这对我来说,似乎它破坏了第一个拥有皮肤的优势地点。我想我希望效果是CUMULATIVE,除非我添加了一个与SKIN冲突的样式,在这种情况下,我希望本地类应用于皮肤的效果。例如,如果我应用了第二个类Class2,除了其他效果之外还包括字体系列规范,我希望Class2中指定的字体覆盖FixedFont样式中的字体。但这似乎不是这里发生的事情。
管理这种情况的最佳方法是什么?我想常常想要一系列宽度都匹配的文本框,所以我想我除了在skin文件中使用应用于控件类型的效果外,还经常要在控件上指定一个CssClass。
解决方案是否不在SKIN中使用CSS?这似乎在维护方面也有缺点。
我遇到的第二个问题是,如果我使用以下类声明样式表..
.Button
{
background-image: url('/images/button.gif')
}
...并将ASP按钮的CSSClass属性设置为“Button”,我看到图像平铺在按钮上。
但是,如果我在皮肤文件中输入以下代码
它找不到图像。
images文件夹是网站根目录下的第一个levl文件夹。
知道它为什么没有拿起图像。我已经尝试了其他各种途径,但这是唯一对我有意义的途径。
顺便说一下,图像在设计模式下应用,但在运行ity时它会消失。
答案 0 :(得分:0)
我不知道我是否理解了你的问题,但正如我从这里看到的那样,你应该以“本地”风格宣布这一点:
textbox.fixedfont { width:200px; }
或者只是对每个文本框,如果你确定影响每个宽度相同的文本框,那么皮肤无关紧要......
textbox { width:200px; }
如果这不是您所要求的,请更清楚。