Doctype打破了我的一些css,但并非全部

时间:2014-02-21 11:55:37

标签: html css asp-classic

您好我想知道使用!DOCTYPE html

我创建了一个在IE以外的所有浏览器上运行良好的简单网页。 在研究它建议我使用的问题!DOCTYPE html。然而,这似乎否定了我的一些CSS,但不是全部。

我调查了它,我能找到的唯一建议就是我的id标签和.css#标签之间的拼写不匹配。

我有一小段java脚本仍然可以正常工作。我的2个div工作正常,允许用户在提交按钮停留在屏幕上时滚动。

但是我丢失了桌面和主页按钮的CSS。它全部包含在一些旧学校的asp中,可能导致了这个问题,因为我之前只使用过asp.net

<%
    Set Cn = Server.CreateObject("ADODB.Connection")
    Cn.Open CnString
    ' Build Sql.
    Sql = "SELECT [USER_CODE],[WINDOWS_ID], [FIRST_NAME], [LAST_NAME], [ACTIVE_IND] FROM      FSUSER ORDER BY [LAST_NAME]"
    ' Open recordset.
    Set Rs = Cn.Execute(Sql)
    If Not Rs.Eof Then arrayActiveUsers = Rs.GetRows()
    Rs.Close
    Set Rs = Nothing
    Response.Write "<form action='main1.asp' method='post'>"
    Response.Write "<div id=""top"">"
    Response.Write "<button name=""regions1"" type=""submit"" value="&regions&" >Save_"&regions&"</button>"
    Response.Write "<a href=""default.asp"" id=""home"" onclick=""return confirm('Have you saved your changes before leaving this page?');"" >Home</a>"
        Response.Write "</div>"
        Response.Write "<div id=""bottom"">"
        Response.Write "<table id=""table1"">"
        Response.Write "<tr>"
        Response.Write "<td>User Code</td>"
        Response.Write "<td>Windows ID</td>"
        Response.Write "<td>First Name</td>"
        Response.Write "<td> Last Name</td>"
        Response.Write "<td> Status</td>"
        Response.Write "<td> ACTIVATE</td>"
        Response.Write "<td> DE-ACTIVATE</td>"
        Response.Write "</tr>"

        Response.Write "<tr>"
For j = 0 To UBound(arrayActiveUsers,2)
if arrayActiveUsers(4,j) = 1 then
        Response.Write "<td>" & arrayActiveUsers(0,j) & "</td>" 
        Response.Write "<td>" & arrayActiveUsers(1,j) & "</td>"
        Response.Write "<td>" & arrayActiveUsers(2,j) & "</td> "
        Response.Write "<td>" & arrayActiveUsers(3,j) & "</td>"
        Response.Write "<td ><font color=""green"">Active</font></td>" 
        Response.Write "<td></td>" 
        Response.Write "<td><input type=""checkbox"" name=""active"" value="  & arrayActiveUsers(0,j) &" /></td>"

Response.Write "</tr>"  
else    
        Response.Write "<td>" & arrayActiveUsers(0,j) & "</td>"
        Response.Write "<td>" & arrayActiveUsers(1,j) & "</td>" 
        Response.Write "<td>" & arrayActiveUsers(2,j) & "</td> " 
        Response.Write "<td>" & arrayActiveUsers(3,j) & "</td>"
        Response.Write "<td><font color=""red"">Not Active</font></td>" 
        Response.Write "</td>" & "<td><input type=""checkbox"" name=""de- active"" value=" & arrayActiveUsers(0,j) &"  /></td>" 
        Response.Write "<td></td>"

        Response.Write "</tr>"
end if
next
Response.Write "</table>"
Response.Write "</div>"
Response.Write "</form>"
 Cn.Close
 Set Cn = Nothing
 %>

所以这是HTML的标题:

<!DOCTYPE html>
<HTML>
<HEAD>
  <link rel="stylesheet" type="text/css" href="main1.css">
<TITLE> Main </TITLE>
   <script type="text/javascript">
            function greeting(){
                alert("Have you commited all your data?")
            }
      </script>
</HEAD>
<BODY>

这是css:

#top{
top:0;
position:fixed;
background: white;
}

#bottom{
margin-top:40px;
}

#home{
display: inline;
width: 115px;
height: 24px;
background: #E6E6E6;
padding: 0px;
text-align: center; 
border-width:2px;
border-style:ridge; 
border-color: gray;
color: black;    
}

#table1{
padding:3;
border:groove,2px,#f0f0f0;
background-color:a0a0a0;

}

我为任何我没有发现的明显错误道歉。我知道CSS会在IE上看起来与其他人看起来不一样,但如果有人能够让它工作,我可以创建2个样式表,一个用于IE,其他一切。

我应该补充一下,我已经尝试了多种doctypes同样的效果

3 个答案:

答案 0 :(得分:1)

我不知道这是导致问题的原因,但是<!DOCTYPE html>似乎只是HTML5,我不确定这是你想要的。

对于HTML4,以便在不使用框架时获得最佳兼容性,请尝试

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

答案 1 :(得分:0)

我有类似的问题。我选择的解决方案:

  1. 我浏览了网站上的所有页面,而不是为每个页面声明DOCTYPE,而是创建了一个包含文件(doctype.asp)
  2. 此文件的内容为

    <!DOCTYPE html >
    <!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8         lt-ie7" xmlns:fb="http://ogp.me/ns/fb#"> <![endif]-->
    <!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8" xmlns:fb="http://ogp.me/ns/fb#"> <![endif]-->
    <!--[if IE 8]>         <html class="no-js lt-ie9" xmlns:fb="http://ogp.me/ns/fb#"> <![endif]-->
    <!--[if gt IE 8] ><!--> <html class="no-js" xmlns:fb="http://ogp.me/ns/fb#"> <!--<![endif]-->
    
  3. 现在当整个网站有相同的DOCTYPE声明时,我修复了CSS的任何问题。

答案 2 :(得分:0)

如果您可以使用最终的html创建一个jsfiddle,那么我们可以测试它,问题可能是一些糟糕的css编码或者没有正确关闭的html标签。

关于doctype的一些简短评论:DOCTYPE声明始终是必需的。如果你不写它,浏览器将以不同的方式呈现网站,因为他们不知道应用哪些标准(特别是IE),所以你会在你的工作浏览器中看到你的风格,但在其他浏览器中你的网站将会看起来很糟糕考虑到这一点,修复样式可能会让你重写所有的CSS,因为你用一个糟糕的标准编写它(就像在纯沙上建造房子一样)。