我有这个奇怪的错误,我使用PrimeNG在我的应用程序中显示DatePicker。当我尝试使用bootstrap' form-control
时,我会遇到一个视觉错误。
这是我的模板:
<div class="form-group row">
<div class="form-group col-md-2">
<label for="valeur">Valeur</label>
<input type="number" id="valeur" class="form-control" />
</div>
<div class="form-group col-md-5">
<label for="dateDebut">Date de début</label>
<p-calendar id="dateDebut" dateFormat="dd/mm/yy" styleClass="form-control" [showIcon]="true"></p-calendar>
</div>
<div class="form-group col-md-5">
<label for="dateFin">Date de fin</label>
<p-calendar id="dateFin" dateFormat="dd/mm/yy" styleClass="form-control" [showIcon]="true"></p-calendar>
</div>
</div>
结果如下:
修改
如果有任何帮助,这里是生成的HTML:
<div class="form-group col-md-5" _ngcontent-scp-1="">
<label for="dateDebut" _ngcontent-scp-1="">Date de début</label>
<p-calendar ng-reflect-show-icon="true" ng-reflect-date-format="dd/mm/yy" ng-reflect-style-class="form-control" styleclass="form-control" id="dateDebut" dateformat="dd/mm/yy" _ngcontent-scp-1="">
<!--template bindings={
"ng-reflect-ng-if": "true"
}-->
<span ng-reflect-initial-classes="form-control" class="form-control ui-calendar" ng-reflect-raw-class="ui-calendar">
<input id="dp1467976345328" ng-reflect-value="" class="hasDatepicker ui-inputtext ui-widget ui-state-default ui-corner-left" ng-reflect-raw-class="[object Object]" type="text"><!--template bindings={
"ng-reflect-ng-if": "true"
}--><button ng-reflect-icon="fa-calendar" type="button" pbutton="" class="ui-datepicker-trigger ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only"><span class="ui-button-icon-left ui-c fa fa-fw fa-calendar"></span><span class="ui-button-text ui-c">ui-button</span></button>
</span>
<!--template bindings={
"ng-reflect-ng-if": "false"
}-->
</p-calendar>
</div>
答案 0 :(得分:6)
我使用了以下解决方法,这在IE和&amp;铬:
<p-calendar [inputStyle]="{'width':'55%'}" ...
试试吧
答案 1 :(得分:3)
PrimeNG
的日历组件有四个样式属性,两个用于添加内联样式,两个用于添加样式(css
)类 - style
,styleClass
,{{ 1}}和inputStyle
。
inputStyleClass
和style
用于设置组件本身的样式(日历)styleClass
和inputStyle
用于设置输入字段的样式所以,这种行为不是错误,这是预期的行为,因为你使用了错误的属性。如果您要将inputStyleClass
课程添加到form-control
的日历输入字段,则应使用PrimeNG
代替inputStyleClass
属性:
styleClass
检查 <div class="form-group col-md-5">
<label for="dateFin">Date de fin</label>
<p-calendar id="dateFin" dateFormat="dd/mm/yy" inputStyleClass="form-control" [showIcon]="true"></p-calendar>
</div>
的日历组件here的完整属性列表。
答案 2 :(得分:3)
添加此css对我有用,可以获得图标,并将form-control添加到inputStyleClass属性。
.ui-calendar button {
right: 0;
top: 0;
}
.ui-calendar {
width: 100%;
}
<p-calendar dateFormat="dd/mm/yy" showTime="showTime" hourFormat="24" formControlName="start" [showIcon]="true" inputStyleClass="form-control"></p-calendar>
答案 3 :(得分:1)
inputStyleClass
”属性设置css类
<p-calendar inputStyleClass="form-control"></p-calendar>
ui-calendar
”css类.ui-calendar { display: block; }
答案 4 :(得分:0)
除了@Srefan Svrkota的回答。你可以创建另一个css类来覆盖表单控件类的内联样式。
.showCalenderInline
{
display: inline !important;
}
and apply to calendar : inputStyleClass="form-control showCalenderInline"
答案 5 :(得分:0)
大家好,也许你可以尝试一下。 即时通讯使用此代码
像这样添加 styleClass 和 inputStyleClass :
<p-calendar styleClass="form-control" inputStyleClass="form-control" ></p-calendar>
尝试改变一些css,对我来说是这样的:
.ui-inputtext{ margin:-7px -12px; }
.ui-button, button.ui-button.ui-state-default, .ui-button.ui-state-default{ top:0px; right: -1px; }
.ui-calendar button{ width: 2.5em; }
结果是
答案 6 :(得分:0)
Primeng 11 / Bootstrap 4。
调整 CSS:
.p-calendar {
width: 100%;
height: 36px;
}
无需在 styleClass
上设置 p-calendar
:
<div class="form-group col-md-5">
<label for="dateFin">Date de fin</label>
<p-calendar inputId="dateFin" dateFormat="dd/mm/yy" [showIcon]="true"></p-calendar>
</div>