代码之家  ›  专栏  ›  技术社区  ›  Deverill

如何用css覆盖html

  •  11
  • Deverill  · 技术社区  · 14 年前

    我的任务是对我们现在的网站进行整容。我对css有一定的了解,所以我将大量的标签转换成css样式,并删除大约2倍的不需要的标签。

    这一切都很顺利,直到我遇到一个特定的产品页面,它只是一个包装器,其他HTML文件被一个server.execute(filename)命令拉入其中。(我们使用aspx作为包装页。)

    其中有将近700页,他们都被这个和那个诅咒了。以前的编辑只知道如何在屏幕上拖动漂亮的东西。

    不管怎样,我想知道是否有一种方法可以在包装页中使用css来覆盖标记行为,这样我就可以使它与我的其他页面保持一致。我甚至愿意使用javascript来删除标记,但这是我不太喜欢的解决方案。谢谢!

    5 回复  |  直到 8 年前
        1
  •  14
  •   Eli Grey    14 年前
    font[size="2"] {
       property: value !important;
       ...
    }
    

    这个 !important 属性值是您要查找的内容。

        2
  •  6
  •   James Goodwin    14 年前

    你可以使用 CSS attribute selector 要匹配字体标记:

    font[size="2"] {
        font-size: 12px;
        font-weight: bold;
    }
    
        3
  •  4
  •   Paul D. Waite    14 年前

    对于这种情况,简单的重置就可以了,例如。

    font {
        font-size: 100%;
    }
    
        4
  •  0
  •   Pekka    14 年前

    如果可以的话——这意味着如果你可以忽略IE6——使用CSS方法Eli Grey和James Goodwin Propose。

    一个更干净,但更乏味的方法是进行智能搜索+全部替换 <font size='2'> <span class='size_2'> 或者别的什么。它可以让你摆脱糟糕的代码,并在所有浏览器中工作。

        5
  •  0
  •   Dancrumb    14 年前

    因为Internet Explorer忽略 !important 规则,您可以尝试以下javascript方法(使用jquery)将所有字体元素替换为跨距,并使用适当的样式表应用格式。

    $('font').each(function(){
      var fontFree = $('span');
      fontFree.append($(this).contents());
      fontFree.addClass('size_'+$(this).attr('size'))
      $(this).replaceWith(fontFree);
    });