首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引导行类不向下传播到角中的组件

引导行类不向下传播到角中的组件
EN

Stack Overflow用户
提问于 2017-10-09 09:35:27
回答 2查看 4K关注 0票数 12

我有很多控件是这样声明的。

代码语言:javascript
复制
<div class="row">
  <div class="col-sm-12">
    <div>Caption</div>
    <input type="text" class="form-control">
  </div>
</div>

为了重构我的代码,我引入了一个组件来封装这个特定的行为。

代码语言:javascript
复制
<div class="row">
  <app-textbox [caption]="'Caption'"></app-textbox>
</div>

组件的标记只是原始代码的副本。

代码语言:javascript
复制
<div class="col-sm-12">
<!-- <div style="width:100%;"> -->
<!-- <div class=""> -->
  <div>{{data?.caption}}</div>
  <input type="text" class="form-control">
</div>

出现的问题是类行似乎没有传播到组件。它扩展到全宽度(因为它被设置为12 ,但不是类行所在组件的宽度--它更小)。通过分析浏览器控制台中的标记,我可以看到唯一的区别是在结构中注入了一个自定义控件的标记,如下所示:

div class=“行” -应用程序-文本框 - div class=“col 12” -输入

而“旧风格”则生成以下内容:

div class=“行” - div class=“col 12” --投入

处理它的一种方法是设置主页面中组件上的列,如下所示。

代码语言:javascript
复制
<div class="row">
  <app-textbox [caption]="'Caption'" class="col-sm-12"></app-input-text>
</div>

然而,有两个问题困扰着我,使我觉得不愿意这样做。第一种情况是,相对于封装组件,组件的两边仍然有一个(非常小的)额外的15 it (所有项目都有它,但是定制的app-textbox获得它两次,可能是由于封装)。另一个问题是,这种类型的封装违背了封装的目的。

我试着扩展组件的宽度,并将不同的样式/类设置到输入框等。几个小时后,我意识到我不知所措。

是否有可能使注入的标记应用程序文本框在其父程序中完全扩展?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-09 10:09:21

要使css在所有组件中可见,请将其直接添加到index.html文件或app.component.css中。

例如,在index.html上,作为最后一个head元素,包括:

代码语言:javascript
复制
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
    integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>

该网址取自:https://getbootstrap.com/docs/3.3/getting-started/

(我假设您的Angular2项目是使用角-cli生成的,文件遵循标准名称)

关于额外的保证金,试着检查app.component.html。也许它周围有个容器。还检查index.html本身

票数 0
EN

Stack Overflow用户

发布于 2019-12-13 10:53:39

我也有过同样的问题。这就是我解决它的方法。

原始app.component.html

代码语言:javascript
复制
<div class="container-fluid">
  <div class="row">
   <app-one></app-one>
   <app-two></app-two>
  </div>
</div>

原始one.component.html

代码语言:javascript
复制
<div class="col-9">
 <p>One</p>
</div>

原始two.component.html

代码语言:javascript
复制
<div class="col-3">
 <p>Two</p>
</div>

我将“col”div从一个组件和两个组件移到了应用程序组件中:

app.component.html

代码语言:javascript
复制
<div class="container-fluid">
  <div class="row">
   <div class="col-9">
    <app-one></app-one>
   </div>
   <div class="col-3">
    <app-two></app-two>
   </div>
  </div>
</div>

one.component.html

代码语言:javascript
复制
<p>One</p>

two.component.html

代码语言:javascript
复制
<p>Two</p>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46643215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档