繁体   English   中英

如何处理冲突的库? -Mathquill与Bootstrap

[英]How to handle conflicting libraries? - mathquill vs bootstrap

我正在使用的两个库BootstrapMathquill之间存在某种冲突。 我正在使用引导程序来表示网站的布局,结构和整体UI,并使用Mathquill进行交互式LaTeX渲染-基本上是让用户以一种不错的“教科书样式”格式输入数学运算。

我的问题是引导程序似乎在数学渲染中与Mathquill冲突。 这是我页面的结构:

的HTML

<div id="container">
  <span id="input" class="mathquill-editable"></span>

</div>

的CSS

#container {
    padding: 5px;
    width: 80%;
}
#input {
    width: 100%;
    padding: 15px;
    margin: 5px;
}

如果不运行Bootstrap,数学将完美呈现。 这是一个小提琴 ,下面是屏幕截图: 没有自举

使用Bootstrap,除了将class panelpanel-defaultdiv#container之外,我具有相同的代码。 用户输入的数学效果不好,因为间距似乎不正确,并且不遵守span#input的边界。 这是一个小提琴 ,下面是屏幕截图: 带自举

我认为这里的问题是引导程序导致MathQuill的数学范围(在span#input )具有更多填充,因此出现了MathQuill的问题。 有没有办法让引导程序忽略span#input内部的区域?

显然,我可以从引导程序中复制所需的样式,然后将其应用于需要样式的区域,但是考虑到我正在广泛使用它,这将很麻烦。

有什么想法吗?

可以通过修改mathquill.css文件中的mathquill-rendered-math类进行更正。

只需添加以下内容。

.mathquill-rendered-math * {
box-sizing: content-box;
top: auto;}

您可以使用iframe仅应用数学样式表。 如果您广泛使用MathQuill,我认为加载速度不会太高。

我会做这样的事情:

<html>
    <head>
        <link href="bootstrap.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <iframe src="math.php#f=2*2"></iframe>
        <iframe src="math.php#f=3*5"></iframe>
    </body>
</html>

然后让math.php输出如下内容:

<html>
    <head>
        <link href="mathquill.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <script>
            // Generate content dynamically with JavaScript from parameter `f` so the this page can be cached.
        </script>
    </body>
</html>

另一种方法是创建自己的自定义引导样式表。 您可以在其网站上下载 LESS源代码。

感谢@Tim的出色回答,但我在这里找到了更好的解决方案。 我将规则包装在我自己的类中bootstrap-enabled bootstrap的类中,以使bootstrap的样式仅适用于我想要的样式。

为了解决这个问题,我要做的是找到它们冲突的区域,并使用我的自定义CSS覆盖这些元素的Bootstrap。

例如,由于以下原因,权力看起来很糟糕/超出了国界

sup {
    top: -0.5em;
}

在Bootstrap中。 我已将CSS中的mathquill元素重置为0。

您正确地指出,Bootstrap会摆弄填充物,这会使分母回绕。 具体来说,Bootstrap使用“边框框”而不是默认的“内容框”来进行框大小调整。 设置:

.denominator {
    box-sizing: content-box;
}

解决此问题。

这解决了示例中的两个问题。 当我发现更多冲突(及其来源)时,我将对其进行更新。

我只是通过将来自此答案的 css-resetter添加到mathquill.css的开头来解决了mathquill + bootstrap冲突(将.reset-this更改为.mathquill-rendered-math *

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM