我试图来定位引导酥料饼为上宽960像素网页的最右上角坐在一个触发器。
理想情况下,我想它放置在底部,并用CSS将箭头(使箭头位于酥料饼的右上角)。 不幸的是,“安置”:“底”的定位是不够的,因为它会居中触发下方。
我正在寻找解决方案,将会把酥料饼的静态以下部分以及触发的左侧。
我试图来定位引导酥料饼为上宽960像素网页的最右上角坐在一个触发器。
理想情况下,我想它放置在底部,并用CSS将箭头(使箭头位于酥料饼的右上角)。 不幸的是,“安置”:“底”的定位是不够的,因为它会居中触发下方。
我正在寻找解决方案,将会把酥料饼的静态以下部分以及触发的左侧。
这工作。 测试。
.popover {
top: 71px !important;
left: 379px !important;
}
只需一个属性添加到您的酥料饼! 见我的jsfiddle如果你在忙乱之中。
我们希望一个ID或类添加到特定酥料饼,使我们可以定制它,我们通过CSS所希望的方式。
请注意,我们不希望自定义所有popovers! 这是可怕的想法。
下面是一个简单的例子 - 显示像这样的酥料饼:
// We add the id 'my-popover' $("#my-button").popover({ html : true, placement: 'bottom' }).data('bs.popover').tip().attr('id', 'my-popover');
#my-popover { left: -169px!important; } #my-popover .arrow { left: 90% }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <button id="my-button" data-toggle="popover">My Button</button>
我创建了一个jQuery插件,提供了4个展示位置产生额外的:左上,topRight,BOTTOMLEFT,bottomRight
你只要有任何缩小的JS或unminified JS和在同一文件夹中的匹配CSS(精缩VS unminified)。
https://github.com/dkleehammer/bootstrap-popover-extra-placements
这会为你在所有occassions工作,特别是如果你的网站有一个液体宽度最好的解决办法,就是用引导酥料饼的视口选项。
这将使您分配一个选择器内酥料饼拿宽度。 因此,如果触发按钮是在该容器的右边,引导箭头也将出现在右侧,而酥料饼是区域内。 见jsfiddle.net
如果你想从容器边缘的一些空间,您还可以使用填充 。 如果你不想要填充只使用视:“.container”
$('#popoverButton').popover({
container: 'body',
placement: "bottom",
html: true,
viewport: { selector: '.container', padding: 5 },
content: '<strong>Hello Wooooooooooooooooooooooorld</strong>'
});
在下面的HTML示例:
<div class="container">
<button type="button" id="popoverButton">Click Me!</button>
</div>
与CSS:
.container {
text-align:right;
width: 100px;
padding: 20px;
background: blue;
}
类似视口,在引导版本4,酥料饼引入了新的选择边界
https://getbootstrap.com/docs/4.1/components/popovers/#options
我通过添加一些代码行到引导CSS库解决了这个(部分地)。 你将不得不修改tooltip.js,tooltip.less,popover.js和popover.less
在tooltip.js,在switch语句中添加这种情况下,
case 'bottom-right':
tp = {top: pos.top + pos.height, left: pos.left + pos.width}
break
在tooltip.less,在.tooltip添加这两个线{}
&.bottom-right { margin-top: -2px; }
&.bottom-right .tooltip-arrow { #popoverArrow > .bottom(); }
做popover.js和popover.less相同。 基本上,无论你寻找到其他位置提到的代码,因此添加您需要的位置。
正如我前面提到的,这部分解决了这个问题。 我现在的问题是,酥料饼的小箭头不会出现。
注意:如果你想在左上角的酥料饼,用“.TOP”的顶部属性和左边的“左”属性
要引导3.0.0:
.popover{ right:0!important; }
和修改过
.popover { max-width:WWWpx!important; }
其中WWW是您正确的最大宽度,以显示你的酥料饼的内容。
我不得不作出以下修改为酥料饼与一些重叠下方位置,并正确显示的箭头。
JS
case 'bottom-right':
tp = {top: pos.top + pos.height + 10, left: pos.left + pos.width - 40}
break
CSS
.popover.bottom-right .arrow {
left: 20px; /* MODIFIED */
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999;
border-bottom-color: rgba(0, 0, 0, 0.25);
top: -11px;
}
.popover.bottom-right .arrow:after {
top: 1px;
margin-left: -10px;
border-top-width: 0;
border-bottom-color: #ffffff;
}
这可以扩展为箭头位置的其他地方..享受!
你当然可以。 幸运的是有一个干净的方式来做到这一点,它是引导酥料饼/提示文档中也是如此。
let mySpecialTooltip = $('#mySpecialTooltip);
mySpecialTooltip.tooltip({
container: 'body',
placement: 'bottom',
html: true,
template: '<div class="tooltip your-custom-class" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>'
});
在你的CSS文件: -
.your-custom-class {
bottom: your value;
}
确保添加自举的工具提示文档中的模板,并添加自定义类的名字,并使用CSS样式它
而且,就是这样。 你可以找到更多有关这对https://getbootstrap.com/docs/4.0/components/tooltips/
也许你并不需要这个逻辑的反应行为。
如
placement: 'auto left'
引导3对放置 汽车价值。 引导文档 :
当指定了“自动”,它会动态地重新调整提示。 例如,如果位置是“汽车左”,工具提示会显示到左边可能的情况下,否则会显示正确。
如果你看一看引导的源代码 ,你会发现,位置可以用保证金进行修改。
所以,首先你应该改变酥料饼的模板,添加自己的CSS类与其他popovers冲突没有得到:
$(".trigger").popover({
html: true,
placement: 'bottom',
trigger: 'click',
template: '<div class="popover popover--topright" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
});
然后使用CSS,你可以很容易地转移酥料饼的位置:
.popover.popover--topright {
/* margin-top: 0px; // Use to change vertical position */
margin-right: 40px; /* Use to change horizontal position */
}
.popover.popover--topright .arrow {
left: 88% !important; /* fix arrow position */
}
该解决方案将不会影响你有其他popovers。 同样的解决方案可以在提示,因为酥料饼类从工具提示类继承来使用。
这里有一个简单的jsfiddle