【问题标题】:HTML object tag not inheriting CSSHTML对象标签不继承CSS
【发布时间】:2019-11-10 04:05:31
【问题描述】:

我在 Github Pages 上托管我的个人网站,由于这不允许服务器端脚本,我已将所有 php include 语句替换为 object 标记。 (非常未完成的)网站已上线 here,如您所见,顶部的导航栏没有从包含它的页面继承任何样式。

我该如何解决这个问题?影响导航栏的样式在 bootstrap.css 和 custom.css 中定义,两者都链接到父页面的头部。包含导航栏的 HTML 文档不包含 head 或 body 标签,因为它们将嵌套在父页面的 body 标签内。将 head 部分放入导航栏的源代码意味着我的所有 CSS 和 JS 每次页面加载(父、导航栏、页脚)加载 3 次。

【问题讨论】:

    标签: html css twitter-bootstrap object


    【解决方案1】:

    使用<object> 加载的页面本质上与使用<iframe> 加载的页面相同。它们是独立的文档,样式不会层叠到它们中。

    我该如何解决这个问题?

    在每个页面中包含您的样式。

    作为一种可怕的 hack,您可以使用 JavaScript 将脚本和链接动态添加到框架中的页面……但最好提前做。

    包含导航栏的 HTML 文档不包含 head 或 body 标签,因为它们会嵌套在父页面的 body 标签内。

    它是一个单独的 HTML 文档。通过不包括 head 部分,您将使其无效。

    将 head 部分放入导航栏的源代码意味着我的所有 CSS 和 JS 每次页面加载(父、导航栏、页脚)加载 3 次。

    不,不会。浏览器缓存他们之前加载的文件。


    顺便说一句,如果我被一个不允许服务器端脚本的主机卡住,我会使用模板预处理器(例如 ttree 或 wintersmith.io)而不是任何类型的客户端包括(像框架)。

    【讨论】:

    • 我想我会进行预处理,因为我尝试将它与自己的头部部分和样式表一起放入,结果很糟糕。
    • 为什么使用 JS 加载 HTML 模板是“可怕的 hack”?这不是和 jquery、angular 等在它们的 HTML 加载函数中所做的一样吗?
    【解决方案2】:

    我标记的链接文件包含在 300x150 像素的框架中。即使我确实在我的css文件中添加了一个指定高度和宽度的“对象”行,我似乎也无法改变它。

    我尝试了 100%、100vh/vw、自动,甚至以 px 为单位的固定大小,没有任何变化,我仍然得到一个 300x150px 的对象和我的 .html 文件的文本。

    这是主html文件的代码(它在我的body标签内,我有很长的页眉和页脚):

    <! GGC 3-2 : main>
                <object type="text/html" target="_parent" data="./sections/main.html#maintxt"> 
                    Your browser doesn’t support the object tag. 
                </object>
    

    这是我想成为“主要”块的文件的代码:

    <!DOCTYPE html>
    <html>              
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=unicode">
        <meta name="viewport" content="width=device-width, initial-scale=0.9">
        <link href="/css/stylem.css" rel="stylesheet" type="text/css">
        <link href="/css/normalize.css" rel="stylesheet" type="text/css">
        <style type="text/css"></style>
    </head>
    
    <body>
        <section class="main">
            <p class="main" id="maintxt">My Text</p>
        </section>
    </body>
    
    </html>
    

    最后是我为对象标签制作的css:

    object {
        height:100vh;
        width:100vh;
        display:block;
    }
    
    #maintxt {
        color: #000;
        font-family: Arial;
        text-align: left;
        text-transform: capitalize;
        letter-spacing: 10px;
        line-height: 0.95;
        direction: rtl;
        font-weight: bold;
        font-size: 12em;
    
        position: absolute;
        left: 15vw; 
    }
    
    .main {width:auto;height:auto;}
    

    感谢您的任何回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-05
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2012-01-05
      • 2011-10-08
      相关资源
      最近更新 更多