当前位置: 首页 > 面试题库 >

具有名称空间的Bootstrap 3中的编译问题

冯风史
2023-03-14
问题内容

当我使用Crunch / WinLESS编译Bootstrap 3时,为什么会有某些样式中断的任何想法。我正在使用此代码进行名称空间引导。

.namespace-bs {
    @import "less/bootstrap.less";
}

在大多数样式中,它的效果都很好,但有一些结果是这样的:

.btn-primary .namespace-bs .caret,.btn-success .namespace-bs .caret,.btn-warning .namespace-bs .caret,.btn-danger .namespace-bs .caret,.btn-info .namespace-bs .caret{border-top-color:#fff;}

当我希望他们像这样:

.namespace-bs .btn-primary .caret,.namespace-bs .btn-success .caret,.namespace-bs .btn-warning .caret,.namespace-bs .btn-danger .caret,.namespace-bs .btn-info .caret{border-top-color:#fff;}

我的编译器有问题或LESS代码中的错误吗?

谢谢


问题答案:

您的问题详细

作为七相-MAX所描述的,存在与名称问题间隔“当&附加 到嵌套选择器”。因此,Bootstrap代码部分具有以下内容:

.caret {
  .btn-default & {
    border-top-color: @btn-default-color;
  }
  .btn-primary &,
  .btn-success &,
  .btn-warning &,
  .btn-danger &,
  .btn-info & {
    border-top-color: #fff;
  }
}

回想一下,的每个实例&都被 完整的嵌套结构 替换,因此,当您按原样对其命名空间时,您实际上具有以下功能:

.namespace-bs {
  .caret {
    .btn-default & {
      border-top-color: @btn-default-color;
    }
    .btn-primary &,
    .btn-success &,
    .btn-warning &,
    .btn-danger &,
    .btn-info & {
      border-top-color: #fff;
    }
  }
}

完全嵌套的结构就.namespace .caret&替换的关键点,这就是为什么您看到选择器看起来像其他的原因.btn-primary .namespace-bs .caret

为LESS 1.4+解决

以下应该工作:

  1. 将引导程序正常地从其LESS代码编译为bootstrap.css文件。这会将所有LESS解析为“常规”引导CSS代码,并且&无论使用什么地方,will都将按预期和期望的方式运行。

  2. 然后在您的名称间隔LESS文件中,执行以下操作:

    .namespace-bs {
    @import (less) “css/bootstrap.css”;
    }

我们正在执行的操作是导入已编译的bootstrap.css文件(由于已&完全编译,因此其中没有更多值),但是在导入文件时,我们要告诉LESS通过将(less)类型转换放入来将CSS视为LESS代码。因此,现在,您的名称空间应简单地将其自身附加到bootstrap.css文件中每个选择器的完整选择器字符串上,并最终获得所需的结果。



 类似资料:
  • 问题内容: 我想获取标记之间的所有内容,但是由于urn:名称空间,我不知道该怎么做。 有任何想法吗? 问题答案: 简短的答案:使用XPath 。这样:将返回 或者,您可以实现一个映射名称空间名称和URI的,并在查询之前在XPath对象上对其进行设置。 看一下这篇博客文章, 更新: 该文章已结束,您可以在webarchive上看到它 解决方案1样本: 解决方案2样本: 编辑 这是一个完整的示例,它可

  • 问题内容: 想知道是否有人在使用新功能通过PHP 5.3对类进行命名空间时是否遇到了此问题。 我正在使用单独的类来生成动态类调用,以在应用程序中定义用户类型。基本上,类定义器采用类型的整数表示形式并解释它们,返回一个包含要用作该用户模型的类名的字符串。 我在全局范围内定义了具有该名称的用户类型的对象模型,但是在Editor名称空间中,该用户的编辑器具有另一个名称相同的对象。由于某些原因,PHP不允

  • 我发送一个POST请求,从一家运输公司生成AWB。为了做到这一点,我必须通过SOAP API POST请求发布多个数据条目。下面的XML是类似的,这是必需的(我已经简化了,否则它要求超过30个参数) 我是SOAP新手,请帮助我朝着正确的方向前进,我甚至非常感谢上面的XML代码,因为它有助于更好地理解。

  • 问题内容: 给定初始XML(BPEL)文件: 我编写了一个使用JAXB的函数,以修改XML内的某些数据。功能如下: 与JAXB相关的编辑之后的结果XML为: 不幸的是,由于解析新XML时XML解析器崩溃,因此生成的XML不符合我们的应用程序。 所以: 如何在生成的XML中删除名称空间? 如何在初始XML文件中保留相同的标头(缺少)? 谢谢! 问题答案: 如果使用MOXy JAXB实现,则可以执行以

  • 仅当我从 XML 文件内的所有元素中删除“bpmn:”时,此代码才有效,否则它会引发以下异常: javax.xml.bind.UnmarshalException:意外元素(URI:"http://www.omg.org/spec/BPMN/20100524/MODEL",local:"定义") 我试图在不修改XML文件的情况下使其工作。任何帮助将不胜感激。提前致谢 :)

  • 抱歉,如果我问的是新手问题,但名称空间对我来说真的很费解。 我试图从一个XML/XSLT生成多个SVG文档。 我的样式表: 这样做会产生以下输出: 但我希望能够根据计算的内容指定高度和宽度属性 我尝试将“ ”创建为 http://www.w3.org/2000/svg 这将失败,因为它(xmlspy)不允许我分配xmlns属性。 如果不在根(svg)上指定名称空间,则xmlns将自动添加到根 节点