W3C验证包含CSS的UserControl

时间:2012-08-02 11:25:58

标签: asp.net css

我为一个库编写了一个.net用户控件,如果我的页面上有一个库,那么它在我的Web应用程序中运行得很好。问题是当我去验证我的页面时,使用XHTML 1.0 Strict,我得到的文档类型不允许元素“链接”在这里。

我做了一些研究,因为我在usercontrol中嵌入了样式表,并且从主页的主体调用,因此它不会验证。我可以将样式表从用户控件中移出到主文件中,但我不需要在每个页面上加载样式表。这样做的最佳方法是什么 - 我希望在usercontrol中包含样式表,以便于“管理”。

任何建议都会很棒。还想一想,我是否还需要从用户控件中删除javascript?

这是有问题的用户控件

<%@ Control Language="C#" Debug="true" AutoEventWireup="true" CodeFile="Gallery.ascx.cs" Inherits="Gallery" %>

<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI.WebControls" TagPrefix="asp" %>

<link ID="FancyboxCSS" type="text/css" rel="stylesheet" href="" runat="server" />
<link ID="FancyboxButtonsCSS" type="text/css" rel="stylesheet" href="" runat="server" />

<script type="text/javascript">

$(document).ready(function () {
    $(".fancybox").fancybox({
        maxWidth: 800,
        maxHeight: 800,
        fitToView: true,
        aspectRatio: true,
        openEffect: 'fade',
        closeEffect: 'fade',
        nextEffect: 'fade',
        prevEffect: 'fade',

        helpers: {
            title: {
                type: 'outside'
            },
            overlay: {
                opacity: 0.8,
                css: {
                    'background-color': '#000'
                }
            },
            buttons: {}
        }
    });
});

<div id="gallery" runat="server">
//images here
</div>

2 个答案:

答案 0 :(得分:0)

标记验证程序以标记语言(如HTML或XML)处理文档,并且文档必须完整。例如,HTML文档必须至少包含title元素。不应包括<%@之类的内容:它们不是HTML文档的一部分,而是指向生成HTML的软件的说明。

因此,如果您希望验证,则需要提交完整的生成的HTML文档。

答案 1 :(得分:0)

在这里为其他寻找同样事物的人找到答案http://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmllink(v=vs.80).aspx

// Define an HtmlLink control.
HtmlLink myHtmlLink = new HtmlLink();
myHtmlLink.Href = "~/StyleSheet.css";
myHtmlLink.Attributes.Add("rel", "stylesheet");
myHtmlLink.Attributes.Add("type", "text/css");

// Add the HtmlLink to the Head section of the page.
Page.Header.Controls.Add(myHtmlLink);