是否可以隐藏 Primeng 日历中的输入字段?

is it possible to hide the Input field in the Primeng Calendar?

是否可以在primeng日历中隐藏input字段,只显示图标?我不想将 p-calendar 元素更改为内联,而只是显示将弹出日历的图标。

component.html

<div class="ui-g-12 ui-md-4">
  <p-calendar class="foo-cal" appendTo="body" readonlyInput="true" dateFormat="yy/mm/dd" [(ngModel)]="date" [showIcon]="true"></p-calendar>
</div>

我尝试了以下方法,但没有成功:

body .ui-calendar.ui-calendar-w-btn .ui-inputtext {
    display: none !important;
}

p-calendar span input {
    display: none !important;
}

但是,如果我将 display: none; 属性 添加到元素,使用浏览器中的开发工具,它将隐藏,只留下图标。有什么想法可以让我在没有输入字段的情况下渲染 html 文件吗?

您只需要为 p-calendar 组件创建自定义样式

<div class="ui-g-12 ui-md-4">
  <h3>Icon</h3>
  <p-calendar styleClass="only-icon" [(ngModel)]="date" [showIcon]="true"></p-calendar>
</div>

style.scss

.only-icon {
 .ui-inputtext{
   display: none;
 }
 button.ui-datepicker-trigger.ui-calendar-button  {
   border-radius: 4px !important;
 }
}

demo ⚡⚡

在没有任何客户的情况下将此样式应用于所有组件class

p-calendar {
 .ui-inputtext{
   display: none;
 }
 button.ui-datepicker-trigger.ui-calendar-button  {
   border-radius: 4px !important;
 }
}

the style above gone to apply to a p-calendar to all project.

我想如果你为输入设置显示 none ,用户在点击那里时看不到日历,但你可以使用这个 css 代码进行输入并在背景中显示你的图标作为图像-图像。

input{
    border: none;
    background-image: url(your-icon-address);
    color: transparent;
    text-shadow: 0 0 0 #fff;
    cursor:pointer;
    /*width:somthing; if you need*/
    /*height:somthing; if you need*/
}
input:focus{
    outline:0;
}

您可以像图标一样设置宽度和高度输入。