【问题标题】:W3C Validate UserControl which contains CSSW3C 验证包含 CSS 的 UserControl
【发布时间】:2023-03-11 22:34:01
【问题描述】:

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

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

任何建议都会很棒。还在想,我是否也需要将 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>

【问题讨论】:

    标签: asp.net css


    【解决方案1】:

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

    因此,如果您想验证,您需要提交一个完整的、生成的 HTML 文档。

    【讨论】:

    • 嗨 Jukka,感谢您的回复,我将使用母版页生成的 html 代码编辑我的问题,我只是包含了用户控件,因为我认为它可能会有所帮助。
    【解决方案2】:

    在这里为将来寻找相同事物的其他人找到答案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      相关资源
      最近更新 更多