【问题标题】:Bootstrap UI: How to change background color of popoverBootstrap UI:如何更改弹出框的背景颜色
【发布时间】:2015-08-14 17:18:01
【问题描述】:

我正在尝试通过创建自定义弹出框类来覆盖现有的类来更改 Bootstrap UI popover 的背景颜色(例如,popover1popover2 等,而不是 popover)。我知道这适用于香草 Bootstrap 弹出框(这里是 fiddle,但它似乎不适用于 Bootstrap UI 弹出框)。

当我对 Bootstrap UI 弹出框应用相同的方法时,它只会显示一个很小的空白弹出框。到目前为止,我所做的只是改变

<a class="btn btn-primary popover-container" id="popover" data-toggle="popover" data-placement="right" data-container="body" rel="log-popover">Log level</a>

<a class="btn btn-primary popover-container" popover-placement="right" popover-template="'partials/loglevel-template.html'" popover-trigger="click">Log level</a>

loglevel-template.html

<div class="popover1">
    <div class="arrow"></div>
    <div class="popover-content">
       <p>some content</p>
    </div>
</div>

当我删除 popover1 类时,它可以工作,因此仅显示弹出框就不会出现功能问题。

我更喜欢使用 Bootstrap UI 弹出框,因为您不必在 jQuery 中使用任何硬编码模板(实际上您根本不必编写任何 jQuery)。我只是不知道如何更改 Bootstrap UI 弹出框的背景颜色。在我进入兔子洞之前,我想知道是否有其他人已经实现了这一点,或者是否有一个简单的修复方法(也许 Bootstrap UI 弹出框使用的类集与普通弹出框不同)。如果是重写一些 CSS 类,那将是梦想。

【问题讨论】:

  • 您使用任何预处理器还是仅使用原始 CSS?

标签: angularjs twitter-bootstrap angular-ui-bootstrap popover


【解决方案1】:

很遗憾,UI Bootstrap 文档中没有记录这一点,我(也很遗憾)花了几个小时才找到这个极其简单的解决方案,但希望这可以为其他人节省一些时间。您可以将popover-class 属性添加到放置uib-popover 指令的元素,然后相应地设置弹出框的样式。详情见下面的sn-p:

angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function ($scope, $sce) {
  
  $scope.dynamicPopover = {
    content: 'Hello, World!',
    templateUrl: 'myPopoverTemplate.html',
    title: 'Title'
  };

});
.trigger-popover-button {
  margin: 25% 0 0 10%;
}

.custom-dynamic-popover-class {
  color: red;
}

.custom-dynamic-popover-class > .popover-inner > .popover-title {
  background: yellow;
}

.custom-dynamic-popover-class > .popover-inner > .popover-content {
  background: blue;
}
<!doctype html>
<html ng-app="ui.bootstrap.demo">
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-1.3.3.js"></script>
    <script src="example.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>

    <div ng-controller="PopoverDemoCtrl">
    
      <button uib-popover-template="dynamicPopover.templateUrl" 
              popover-title="{{dynamicPopover.title}}" 
              popover-class="custom-dynamic-popover-class"
              type="button" 
              class="btn btn-default trigger-popover-button">
        Popover With Template
      </button>

      <script type="text/ng-template" id="myPopoverTemplate.html">
        <div>{{dynamicPopover.content}}</div>
        <div class="form-group">
          <label>Popup Title:</label>
          <input type="text" 
                 ng-model="dynamicPopover.title" 
                 class="form-control">
        </div>
      </script>
   
    </div>
  </body>
</html>

【讨论】:

    猜你喜欢
    • 2014-02-24
    • 2013-08-23
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多