html - 是否可以使用 CDN 仅对 div 应用 Bootstrap ?

标签 html css twitter-bootstrap twitter-bootstrap-3

我使用 twitter bootstrap 设计了一个包含一些内容的 div。现在我想生成这个页面的一个片段,这样其他用户就可以将这个片段复制粘贴到他们的页面中。但问题是,不能保证它们都会使用 bootstrap,所以这个代码片段在非 bootstrap 站点上不起作用。

我也添加了一些自定义的 CSS 类。我可以使用样式标签在代码片段中添加这些样式。如果我想以同样的方式添加 Bootstrap 样式,那将是巨大的。

是否可以为特定的 div 使用 bootstrap CDN?这样 Bootstrap 样式就不会影响该页面的其他部分。 还是有其他方法?

这是片段:

<div id="login-form">
    <div class="row row-padded">
        <div class="col-md-7">
            <form role="form">
                <div id="title" class="section-header login-form-label">Login</div>
                <div class="form-group">
                    <label for="exampleInputEmail1" class="login-form-label">Email address</label>
                    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email">
                </div>
                <div class="form-group">
                    <label for="exampleInputPassword1" class="login-form-label">Password</label>
                    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
                </div>

                <button type="button" class="btn btn-primary" id="primary-button-text">Primary</button>

                <div><a href="#" class="">Forgot password?</a></div>
                <div><a href="#" class="" id="register-link-text">New here? Create an Account</a></div>

            </form>
        </div>
    </div>

最佳答案

我不认为你可以用 CDN 做到这一点,因为你不能只在 div 上应用样式(试试 iframe?)。

您可以做的是尝试编译所需的最少 css 并将其应用到您的 div 上。

从 Github 下载最新版本的 Bootstrap。

将您将使用的每个 Bootstrap 类复制到 Less 中的#login-form 子类,例如:

#login-form .row {.row;}

将此行添加到 bootstrap.less 的末尾并编译此文件,将生成的 CSS 的最新行复制到 #login-form

我用你的例子:

#login-form .row {.row;}
#login-form .col-md-7 {.col-md-7;
    float: left;
    width: percentage((7 / @grid-columns)); 
}
#login-form .form-group {.form-group}
#login-form .btn {.btn;}
#login-form .btn-primary {.btn-primary;}
#login-form .form-control {.form-control;}

这将导致:

#login-form .row:after{clear:both}
#login-form .row:before,#login-form .row:after{content:" ";display:table;}
#login-form .row:after{clear:both}
#login-form .col-md-7{position:relative;min-height:1px;padding-left:15px;padding-right:15px;float:left;width:58.333333333333336%}
#login-form .form-group{margin-bottom:15px}
#login-form .btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.428571429;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}#login-form .btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}
#login-form .btn:hover,#login-form .btn:focus{color:#333;text-decoration:none}
#login-form .btn:active,#login-form .btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}
#login-form .btn.disabled,#login-form .btn[disabled],fieldset[disabled] #login-form .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}
#login-form .btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}#login-form .btn-primary:hover,#login-form .btn-primary:focus,#login-form .btn-primary:active,#login-form .btn-primary.active,.open .dropdown-toggle#login-form .btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}
#login-form .btn-primary:active,#login-form .btn-primary.active,.open .dropdown-toggle#login-form .btn-primary{background-image:none}
#login-form .btn-primary.disabled,#login-form .btn-primary[disabled],fieldset[disabled] #login-form .btn-primary,#login-form .btn-primary.disabled:hover,#login-form .btn-primary[disabled]:hover,fieldset[disabled] #login-form .btn-primary:hover,#login-form .btn-primary.disabled:focus,#login-form .btn-primary[disabled]:focus,fieldset[disabled] #login-form .btn-primary:focus,#login-form .btn-primary.disabled:active,#login-form .btn-primary[disabled]:active,fieldset[disabled] #login-form .btn-primary:active,#login-form .btn-primary.disabled.active,#login-form .btn-primary[disabled].active,fieldset[disabled] #login-form .btn-primary.active{background-color:#428bca;border-color:#357ebd}
#login-form .form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s}#login-form .form-control:-moz-placeholder{color:#999}
#login-form .form-control::-moz-placeholder{color:#999}
#login-form .form-control:-ms-input-placeholder{color:#999}
#login-form .form-control::-webkit-input-placeholder{color:#999}
#login-form .form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6)}
#login-form .form-control[disabled],#login-form .form-control[readonly],fieldset[disabled] #login-form .form-control{cursor:not-allowed;background-color:#eee}
textarea#login-form .form-control{height:auto}

用您的代码查看:http://jsfiddle.net/gDraJ/

请注意,一些较少的规则包含在媒体查询中(我不知道如何复制它们)。所以在这个例子中我使用:

#login-form .col-md-7 {.col-md-7;
    float: left;
    width: percentage((7 / @grid-columns)); 
}

#login-form .col-md-7 {.col-md-7;} 应该是预期的地方。

在 fiddle 示例中我还添加了:

#login-form
{
  -webkit-box-sizing: content-box;
     -moz-box-sizing: content-box;
      box-sizing: content-box;
}

参见:Twitter's Bootstrap 3 with ShareThis widgetWhy did Bootstrap 3 switch to box-sizing: border-box?

更新 理论上,您还可以将 bootstrap.less 的所有内容包装在 #login-form{} 中并进行编译。生成的 CSS 将仅在 #login-form 上应用所有 Bootstrap 规则。当然,您可以在外部 URL 上提供此 CSS。

关于html - 是否可以使用 CDN 仅对 div 应用 Bootstrap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19343043/

相关文章:

html、div、css - 悬停 Action 和背景图像更改

html - 谷歌地图作为 foursquare 上的固定背景

html - 根据字段 :title 动态换行

javascript - 在 React 组件中导入分割的 css 文件

javascript - 在 JQuery 中生成另一个 HTML 表以输入更多小时数进行计算

html - float div 停留在 div 容器中/在浏览器调整大小时不换行

css - td 模仿关于复选框的标签行为

javascript - 使用 Bootstrap 验证的条件验证

html - Bootstrap 4 将菜单项转换为多选

javascript - 在 ng-repeat 期间添加 Bootstrap 行