1

我正在使用 ASP.Net C# 中的 Web 应用程序,在我的字段验证器上使用 AjaxControlToolkit ValidatorCalloutExtender 控件。扩展器弹出窗口呈现如下:

损坏的弹出窗口

(注意错误消息框和标注箭头之间的空格)。我知道为什么会这样;我有一个包含我正在验证的控件的表单,我在表单中的 CSS 中有以下内容:

.formTable td, .formTable th
{
    padding: 3px;
}

如果我注释掉该行padding: 3px;,弹出窗口看起来不错......但是我的表单布局看起来很糟糕。

所以我的问题是:有没有一种方法可以在表单布局表上保留填充,但在表格内呈现的弹出窗口上禁用它?

编辑:这是我一直在使用的完整 CSS,用于覆盖验证器标注的样式。

.ajax__validatorcallout_popup_table
{
    /* display: none; */
    border: none;
    background-color: transparent;
    padding: 0px;
}

.ajax__validatorcallout_popup_table_row
{
    vertical-align: top;
    height: 100%;
    background-color: transparent;
    padding: 0px;
}

.ajax__validatorcallout_callout_cell
{
    width: 20px;
    height: 100%;
    text-align: right;
    vertical-align: top;
    border: none;
    background-color: transparent;
    padding: 0px;
}

.ajax__validatorcallout_callout_table
{
    height: 100%;
    border: none;
    background-color: transparent;
    padding: 0px;
}

.ajax__validatorcallout_callout_table_row
{
    background-color: transparent;
    padding: 0px;
}

.ajax__validatorcallout_arrow_cell
{
    padding: 8px 0 0 0;
    text-align: right;
    vertical-align: top;
    font-size: 1px;
    border: none;
    background-color: transparent;
}

.ajax__validatorcallout_callout_arrow_cell .ajax__validatorcallout_innerdiv
{
    font-size: 1px;
    position: relative;
    left: 1px;
    border-bottom: none;
    border-right: none;
    border-left: none;
    width: 15px;
    background-color: transparent;
    padding: 0px;
}

.ajax__validatorcallout_callout_arrow_cell .ajax__validatorcallout_innerdiv div
{
    height: 1px;
    overflow: hidden;
    border-top: none;
    border-bottom: none;
    border-right: none;
    padding: 0px;
    margin-left: auto;
}

.ajax__validatorcallout_error_message_cell
{
    font-family: Verdana;
    font-size: 10px;
    color: red;
    padding: 5px;
    border-right: none;
    border-left: none;
    width: 100%;
}

.ajax__validatorcallout_icon_cell
{
    width: 20px;
    padding: 5px;
    border-right: none;
}

.ajax__validatorcallout_close_button_cell
{
    vertical-align: top;
    padding: 0px;
    text-align: right;
    border-left: none;
}

.ajax__validatorcallout_close_button_cell .ajax__validatorcallout_innerdiv
{
    border: none;
    text-align: center;
    width: 10px;
    padding: 2px;
    cursor: pointer;
}

编辑:这是弹出表的 ASP.Net 呈现的 HTML(抱歉,我必须将其作为图像发布)。

验证器标注弹出表的代码

4

2 回答 2

1

快速的方法是更改​​您的填充:

padding: 0px

padding: 0px !important
于 2013-05-15T20:44:37.650 回答
0

像这样的东西应该可以解决问题:

.popupclassname .formTable td, .popupclassname .formTable th {
    padding: 0px;
}

诀窍是使选择器比一般选择器更具体:更多关于特异性如何在这里工作:http ://coding.smashingmagazine.com/2007/07/27/css-specificity-things-you-should-know/

于 2013-05-15T20:11:39.587 回答