自定义组件内的离子项目边框

时间:2018-09-29 04:05:20

标签: ionic-framework ionic2 ionic3

我有如下所示的标记。

<ion-item-group>
   <ion-item>First</ion-item>
   <ion-item>Second</ion-item>
   <ion-item>Third</ion-item>
</ion-item-group>

<ion-item-group>
    <custom-component></custom-component>
    <custom-component></custom-component>
</ion-item-group>

#Custom component markup#
<ion-item>Test<ion-item>

问题在于,对于我的自定义组件中的离子项目,未绘制标准底部边框。因为在dom中它们位于自定义组件内部。如何返回底部边框?

https://stackblitz.com/edit/ionic-7a3ai5?file=app%2Fapp.module.ts。例如,请参阅home组件

1 个答案:

答案 0 :(得分:1)

看起来像问题的是这些样式规则:

ion-item-group .item-md .item-wrapper:last-child .item-inner, 
ion-item-group .item-md:last-child .item-inner {
  border: 0;
}

ion-item-group .item-ios:last-child .item-inner, 
ion-item-group .item-wrapper:last-child .item-ios .item-inner {
    border: 0;
}

之所以会应用它们,是因为每个custom-component仅包含一个项目,因此每个项目都是其父项的最后一个子项。

一种解决方法是手动将Ionic默认边框应用于自定义组件中的每个项目(除了最后一个custom-component中的项目,就像Ionic一样)。

Working demo

custom-component {

  /* ------- */  
  /* Android */
  /* ------- */

  /* Add the border to each item */
  .item-md.item-block .item-inner,
  ion-item-group .item-md .item-wrapper:last-child .item-inner, 
  ion-item-group .item-md:last-child .item-inner {
    border-bottom: 1px solid #dedede;
  }

  /* Remove the border from the last custom component item */
  &:last-child {
    .item-md .item-wrapper:last-child .item-inner, 
    .item-md:last-child .item-inner {
        border: 0;
    }
  }

  /* --- */
  /* iOS */
  /* --- */

  /* Add the border to each item */
  .item-ios.item-block .item-inner,
  ion-item-group .item-ios:last-child .item-inner, 
  ion-item-group .item-wrapper:last-child .item-ios .item-inner {
    border-bottom: .55px solid #c8c7cc;
  }

  /* Remove the border from the last custom component item */
  &:last-child {
    .item-ios:last-child .item-inner, 
    .item-wrapper:last-child .item-ios .item-inner {
        border: 0;
    }
  }
}