【问题标题】:CSS compatibility with different browsersCSS与不同浏览器的兼容性
【发布时间】:2012-01-18 11:15:02
【问题描述】:

我有一个 Asp.Net 创建用户向导并尝试修改和排列它的标签,使其在每个浏览器中看起来都一样。

现在的问题是它在 chrome 中看起来不错,但在 IE9 和 Firefox 中看起来一样。

这是它在 chrome 中的外观:

当我在这里进行检查时,它会在右侧显示元素 .style 属性,该属性具有两个元素,即 position:absolute 和 Z-index:2,这会使所有内容都报废。

IE 和 firefox 的问题来了:

当谈到 Firefox 和 IE 时,它会忽略一切:

我在我的 css 文件中提供了以下属性,如下所示,但这仅适用于 chrome,所以我想知道如何为 IE 和 Firefox 更改它

.signtbl
{
z-index:2;
position:relative !important;
}

这是我的控件的全部代码:

<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" 
  DisableCreatedUser="True" MailDefinition-BodyFileName="~/EmailTemplates/NewAccountTemplate.htm" MailDefinition-From="noreply@imgaid.com" LoginCreatedUser="False" MailDefinition-IsBodyHtml="True" MailDefinition-Priority="High" MailDefinition-Subject="Pending Activation">
  <ContinueButtonStyle BorderStyle="None" CssClass="btn big" Font-Size="12px"/>
  <CreateUserButtonStyle CssClass="btn big" Height="30px" 
            Width="125px" BorderStyle="None" Font-Size="12px" />
      <MailDefinition BodyFileName="~/EmailTemplates/NewAccountTemplate.htm" 
          From="noreply@xyz.com" IsBodyHtml="True" Priority="High" 
          Subject="Pending Activation">
      </MailDefinition>
      <WizardSteps>
          <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server">
              <ContentTemplate>
                  <table>
                      <tr>
                          <td align="right">
                              <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName" CssClass="signtbl">User Name:</asp:Label>
                          </td>
                          <td>
                              <asp:TextBox ID="UserName" runat="server" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD" AutoCompleteType="Disabled"></asp:TextBox>
                              <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
                                  ControlToValidate="UserName" ErrorMessage="User Name is required." 
                                  ToolTip="User Name is required." ValidationGroup="CreateUserWizard1" 
                                  CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator>
                                 <div id="divUsernameAvailability" runat="server"></div>
                          </td>
                      </tr>
                      <tr>
                          <td align="right">
                              <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password" CssClass="signtbl">Password:</asp:Label>
                          </td>
                          <td>
                              <asp:TextBox ID="Password" runat="server" TextMode="Password" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD"></asp:TextBox>
                              <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" 
                                  ControlToValidate="Password" ErrorMessage="Password is required." 
                                  ToolTip="Password is required." ValidationGroup="CreateUserWizard1" 
                                  CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator>
                          </td>
                      </tr>
                      <tr>
                          <td align="right">
                              <asp:Label ID="ConfirmPasswordLabel" runat="server" 
                                  AssociatedControlID="ConfirmPassword" CssClass="signtbl">Confirm Password:</asp:Label>
                          </td>
                          <td>
                              <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD"></asp:TextBox>
                              <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" 
                                  ControlToValidate="ConfirmPassword" 
                                  ErrorMessage="Confirm Password is required." 
                                  ToolTip="Confirm Password is required." 
                                  ValidationGroup="CreateUserWizard1" CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator>
                          </td>
                      </tr>
                      <tr>
                          <td align="right">
                              <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email" CssClass="signtbl">E-mail:</asp:Label>
                          </td>
                          <td>
                              <asp:TextBox ID="Email" runat="server" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD"></asp:TextBox>
                              <asp:RequiredFieldValidator ID="EmailRequired" runat="server" 
                                  ControlToValidate="Email" ErrorMessage="E-mail is required." 
                                  ToolTip="E-mail is required." ValidationGroup="CreateUserWizard1" 
                                  CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator>
                                  <div id="divEmailAvailability" runat="server"></div>
                          </td>
                      </tr>
                      <%--<tr>
                          <td align="right">
                              <asp:Label ID="QuestionLabel" runat="server" AssociatedControlID="Question" CssClass="signtbl">Security Question:</asp:Label>
                          </td>
                          <td>
                              <asp:TextBox ID="Question" runat="server" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD"></asp:TextBox>
                              <asp:RequiredFieldValidator ID="QuestionRequired" runat="server" 
                                  ControlToValidate="Question" ErrorMessage="Security question is required." 
                                  ToolTip="Security question is required." 
                                  ValidationGroup="CreateUserWizard1" CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator>
                          </td>
                      </tr>
                      <tr>
                          <td align="right">
                              <asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer" CssClass="signtbl">Security Answer:</asp:Label>
                          </td>
                          <td>
                              <asp:TextBox ID="Answer" runat="server" BorderStyle="Solid" BorderWidth="1px" BorderColor="#0099CC" BackColor="#FAFFBD"></asp:TextBox>
                              <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" 
                                  ControlToValidate="Answer" ErrorMessage="Security answer is required." 
                                  ToolTip="Security answer is required." ValidationGroup="CreateUserWizard1" 
                                  CssClass="signupvalidators" ForeColor="Red">*</asp:RequiredFieldValidator>
                          </td>
                      </tr>--%>
                  <tr>
                  <td align="center" colspan="2">
                      <asp:RegularExpressionValidator ID="UsernameLength" runat="server" 
                          ErrorMessage="Username should be minimum 5-10 characters." 
                          ControlToValidate="UserName" Display="Dynamic" ForeColor="Red" 
                          ValidationExpression="^[\s\S]{5,10}$" ValidationGroup="CreateUserWizard1"></asp:RegularExpressionValidator>
                  </td>
                  </tr>
                      <tr>
                          <td align="center" colspan="2">
                              <asp:CompareValidator ID="PasswordCompare" runat="server" 
                                  ControlToCompare="Password" ControlToValidate="ConfirmPassword" 
                                  Display="Dynamic" 
                                  ErrorMessage="The Password and Confirmation Password must match." 
                                  ValidationGroup="CreateUserWizard1" ForeColor="Red"></asp:CompareValidator>
                          </td>
                      </tr>
                      <tr>
                          <td align="center" colspan="2" style="color:Red;">
                              <asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
                          </td>
                      </tr>
                      <tr>
                      <td  align="center" colspan="2">
                       <asp:RegularExpressionValidator ID="PasswordLength" runat="server"  Display="Dynamic"
                                  ErrorMessage="Password length minimum: 7. Non-alphanumeric characters required: 1" 
                                  ControlToValidate="Password" ValidationExpression="(?=^.{7,51}$)([A-Za-z]{1})([A-Za-z0-9!@#$%_\^\&amp;\*\-\.\?]{5,49})$" 
                              ForeColor="Red" ValidationGroup="CreateUserWizard1"></asp:RegularExpressionValidator>
                      </td>
                      </tr>
                      <tr>
                       <td  align="center" colspan="2">
                          <asp:RegularExpressionValidator ID="EmailValidator" runat="server" Display="Dynamic"
                                ControlToValidate="Email"  ErrorMessage="Please enter a valid e-mail address." ValidationExpression="^[\w-]+(\.[\w-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*?\.[a-z]{2,6}|(\d{1,3}\.){3}\d{1,3})(:\d{4})?$"  ForeColor="Red" ValidationGroup="CreateUserWizard1"></asp:RegularExpressionValidator>
                      </td> 
                      </tr>
                  </table>

                  <%-- <asp:UpdateProgress ID="UpdateProgressUserDetails" runat="server" DisplayAfter="0">
                            <ProgressTemplate>
                                <div style="position: absolute; top: 215px; left:140px;">
                                    <img src="img/Loader.gif" alt="loading" /><br />
                                </div>
                            </ProgressTemplate>
                        </asp:UpdateProgress>--%>
              </ContentTemplate>
          </asp:CreateUserWizardStep>
          <asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server">
              <ContentTemplate>
                  <table>
                      <tr>
                          <td align="center" colspan="2">
                              Complete</td>
                      </tr>
                      <tr>
                          <td>
                              Your account has been successfully created.</td>
                      </tr>
                      <%--<tr>
                          <td align="right" colspan="2">
                              <asp:Button ID="ContinueButton" runat="server" BorderStyle="None" 
                                  CausesValidation="False" CommandName="Continue" CssClass="btn big" 
                                  Font-Size="12px" Text="Continue" ValidationGroup="CreateUserWizard1" />
                          </td>
                      </tr>--%>
                  </table>
              </ContentTemplate>
          </asp:CompleteWizardStep>
      </WizardSteps>
  </asp:CreateUserWizard>

【问题讨论】:

  • 您使用position:absolute的原因是什么?应该没有必要。如果你把它拿出来,那么输入应该与所有浏览器中的标签对齐。
  • 绝对位置确实导致了两个元素的崩溃(确实,为什么?)。 DOM 不会考虑这两个项目的宽度,因为它们是绝对位置的。因此,您使用的表格结构会折叠到此。
  • @Deadlykipper-我没有使用任何位置:绝对 element.style 属性本身显示为绝对,是的,这就是我在样式表中所做的,将其称为位置:相对!重要。但这与 Firefox 和 IE 无关

标签: asp.net css styles element


【解决方案1】:

为什么不尝试使用表格来对齐网格结构中的控件,这通常会有所帮助。 这是你可以做的。在你想要放置控件的地方创建一个 div 在 div 中首先创建一个表格结构,然后将控件放在单个 试试这可能会有所帮助

【讨论】:

  • 正如我在上面的屏幕上看到的 - 他正在使用表格,有什么问题。
  • @User1155418-我的表格的原因实际上是我需要扩展我的控制以更具体地使用它。
  • @DotNetter - 将您的代码粘贴到 jsfiddle.net - 更容易提供帮助
  • 这是一个点网控件,我不能发,否则我会发的。
  • @DotNetter-请把你的样式表和页面一起放好,以便更好地参考屏幕截图只是不清楚
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 2012-02-06
  • 2010-11-17
  • 1970-01-01
  • 2013-08-27
  • 2012-01-11
相关资源
最近更新 更多