我有一個簡單的UI Bootstrap警報,我用來顯示錯誤信息等。 我隱藏它(默認情況下)在頁面頂部的標題下方。 我可以使用範圍變量來更改顏色和文本,並使用ng-hide來隱藏它。這裏是警戒HTML:使用AngularJS的用戶界面Bootstrap警報隱藏佔用額外的空間
<alert type={{alertType}} close="hideAlert = true"
ng-hide="hideAlert" class="ng-hide">{{alertText}}</alert>
的問題是,當頁面加載,並警告是隱藏的,有一個額外的20像素左右的空間被隱藏的警報吸收。當我檢查元素時,看起來'x'關閉按鈕佔用了21px的空間,並且不像警報那樣收縮。這是元素控制檯顯示的內容,
<button ng-show="closeable" type="button" class="close" ng-click="close($event)">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
而且,警報的文本元素做同樣的事情,除了在空間20px的 - 雖然這個空間被包含在上述21px。元素控制檯顯示此:
<div ng-transclude="">
<span class="ng-binding ng-scope">Default Alert!</span>
</div>
的警報和alert.ng隱藏的CSS是這樣的:
.alert {
-moz-transition: 0.5s linear all;
-o-transition: 0.5s linear all;
-webkit-transition: 0.5s linear all;
transition: 0.5s linear all;
display: block !important;
max-height:50px;
opacity: 1;
}
.alert.ng-hide {
display: block !important;
max-height:0px;
opacity: 0;
padding-top: 0;
padding-bottom: 0;
margin-top: 0;
margin-bottom: 0;
}
爲什麼隱時現這些警報部件不被縮水任何想法?
我不是百分之百確定,但不是ng-hide,你可能會使用ng-if。 ng-hide繪製並隱藏對象ng - 如果直接破壞dom。可能會使用ng-if應該解決你的問題。沒有DOM對象可能意味着屏幕上沒有像素佔用。 – ibrahimbayer