Css 角度9:禁用标签复选框(不是框)

Css 角度9:禁用标签复选框(不是框),css,angular,checkbox,Css,Angular,Checkbox,我需要它,以便使点击只是一个复选框标签隐私政策的一部分。以下是代码片段: <div> <mat-checkbox required formControlName="privacyCheck" [checked]="false"> <b style="color: crimson">*</b>Accetto la <i style="color: #770E0E" (click)="prin

我需要它,以便使点击只是一个复选框标签隐私政策的一部分。以下是代码片段:

    <div>
      <mat-checkbox required formControlName="privacyCheck" [checked]="false">
        <b style="color: crimson">*</b>Accetto la
        <i style="color: #770E0E" (click)="printDebug()">privacy policy</i>
        e i termini di condizione dell'utilizzo del servizio.
      </mat-checkbox>
    </div>
目前,如果我点击斜体文本隐私策略,我得到了printDebug,但当然复选框将设置为checked

我尝试了几种使用CSS属性指针事件的解决方案:无!重要的打开.mat复选框布局.mat复选框标签范围,.mat复选框布局.mat复选框标签,依此类推


一个好的老式停止播放怎么样

我的回答有点太快了

您需要执行preventDefault,因为mat复选框的内容将放在中,如果单击附加标签,则默认浏览器行为是选中复选框

<i style="color: #770E0E" (click)="printDebug($event)">privacy policy</i>
如果您使用的是材质的涟漪效果,则仍会触发该效果。如果您不想这样做,则必须在鼠标向下执行.stopPropagation:

<i style="color: #770E0E" (mousedown)="$event.stopPropagation()" 
                          (click)="printDebug($event)">privacy policy</i>

一个好的老式停止播放怎么样

我的回答有点太快了

您需要执行preventDefault,因为mat复选框的内容将放在中,如果单击附加标签,则默认浏览器行为是选中复选框

<i style="color: #770E0E" (click)="printDebug($event)">privacy policy</i>
如果您使用的是材质的涟漪效果,则仍会触发该效果。如果您不想这样做,则必须在鼠标向下执行.stopPropagation:

<i style="color: #770E0E" (mousedown)="$event.stopPropagation()" 
                          (click)="printDebug($event)">privacy policy</i>

@Mattia_B我已经更新了我的答案,进行了一次有效的闪电战example@Mattia_B我已经更新了我的答案,使用了一个有效的stackblitz示例