使用 Bootstrap 4 使下拉菜单使用 100% 宽度
Make dropdown menu use 100% width using Bootstrap 4
所以这个问题让我发疯了伙计们。我使用 Boostrap 4 创建了一个下拉菜单,但是当屏幕为移动尺寸时,我使用了媒体查询。我想让我的下拉菜单在移动时使用 100%,并且我已经尝试将宽度 100% 放在某些 div 或固定位置中,但是 none 有效。
这是我的屏幕:
蓝色标记的部分是我要覆盖整个屏幕的部分。
这是我的 HTML 代码:
<div class="notification-container dropdown">
<button
class="btn notification-button"
type="button"
id="dropdownMenuButton"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
<i class="fa fa-bell-o"></i>
</button>
<div
class="dropdown-menu dropdown-menu-right notification-container-header"
aria-labelledby="dropdownMenuButton"
>
{{ notifications.length }} notificações
<div class="notification-container-list-body">
<ul class="list-group list-group-flush">
<ng-template
ngFor
let-notification
[ngForOf]="notifications"
let-i="index"
>
<ng-template [ngIf]="notification.imagem">
<li class="notification-container-list-body-item">
<a
class="list-group-item notification-container-list-body-item-image"
routerLink="{{ notification.link }}"
>
<img src="{{ notification.imagem }}" alt="" />
<div>
<div>
{{ notification.titulo }}
</div>
<div>
{{ notification.descricao }}
</div>
</div>
</a>
<button
class="btn delete-notification"
(click)="dropdownPersist($event)"
(click)="deleteNotification(notification.id)"
>
<i class="fa fa-close"></i>
</button>
</li>
</ng-template>
<ng-template [ngIf]="!notification.imagem">
<li class="notification-container-list-body-item">
<a
class="list-group-item notification-container-list-body-item-noimage"
href="{{ notification.link }}"
>
<div>
<div>
{{ notification.titulo }}
</div>
<div>
{{ notification.descricao }}
</div>
</div>
</a>
<button
class="btn delete-notification"
(click)="dropdownPersist($event)"
(click)="deleteNotification(notification.id)"
>
<i class="fa fa-close"></i>
</button>
</li>
</ng-template>
</ng-template>
</ul>
</div>
</div>
</div>
这是我的 SCSS 代码:
p,
a {
margin: 0;
padding: 0;
border: 0;
text-decoration: none;
}
.notification-button {
border-color: transparent;
box-shadow: none;
i {
color: #fff;
}
&:focus {
i {
color: #0ff;
}
}
}
.notification-container-header {
text-align: center;
font-size: 0.9rem;
padding-top: 0px;
padding-bottom: 0px;
border-bottom: 0px;
border-radius: 0;
background-color: #0ff;
color: #000;
font-weight: 500;
}
.notification-container-list-body {
margin-left: 3px;
margin-right: 3px;
ul {
margin-bottom: 3.5px;
max-height: 250px;
overflow: auto;
}
}
.notification-container-list-body-item {
display: grid;
background: #000;
grid-template-columns: 1fr 0.1fr;
padding: 10px 10px 6px 11px;
border-bottom: 1px solid #fff;
}
.notification-container-list-body-item-image {
background: #000;
display: grid;
grid-template-columns: 0.2fr 1fr;
justify-content: center;
img {
height: 30px;
width: 60px;
padding-right: 9px;
}
div {
text-align: left;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 200px;
color: #fff;
&:nth-child(1) {
font-size: 10px;
}
&:nth-child(2) {
font-size: 14px;
}
}
}
.notification-container-list-body-item-noimage {
@extend .notification-container-list-body-item-image;
grid-template-columns: 1.9fr 0.1fr;
div {
width: 261px;
}
}
.delete-notification {
padding: 0;
border-color: transparent;
box-shadow: none;
i {
height: 12px;
width: 12px;
color: #646464;
}
&:focus {
i {
color: #646464;
}
}
}
@media (max-width: 576px) {
.notification-container-header {
margin-top: 0;
border: 0;
}
.notification-container-list-body-item {
grid-template-columns: 1.7fr 0.3fr;
padding: 10px 10px 6px 11px;
}
.notification-container-list-body-item-image {
img {
height: 30px;
width: 70px;
padding-right: 9px;
align-self: center;
}
div {
color: #fff;
&:nth-child(1) {
font-size: 12px;
}
&:nth-child(2) {
font-size: 16px;
}
}
}
.notification-container-list-body-item-noimage {
grid-template-columns: 2.3fr 0.3fr;
}
}
我也在用Angular9,制作动态内容。
有人可以帮忙吗?
.notification-container-list-body {
width: 100%; <=====================================================
margin-left: 3px;
margin-right: 3px;
ul {
margin-bottom: 3.5px;
max-height: 250px;
overflow: auto;
}
}
所以这个问题让我发疯了伙计们。我使用 Boostrap 4 创建了一个下拉菜单,但是当屏幕为移动尺寸时,我使用了媒体查询。我想让我的下拉菜单在移动时使用 100%,并且我已经尝试将宽度 100% 放在某些 div 或固定位置中,但是 none 有效。
这是我的屏幕:
蓝色标记的部分是我要覆盖整个屏幕的部分。
这是我的 HTML 代码:
<div class="notification-container dropdown">
<button
class="btn notification-button"
type="button"
id="dropdownMenuButton"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
>
<i class="fa fa-bell-o"></i>
</button>
<div
class="dropdown-menu dropdown-menu-right notification-container-header"
aria-labelledby="dropdownMenuButton"
>
{{ notifications.length }} notificações
<div class="notification-container-list-body">
<ul class="list-group list-group-flush">
<ng-template
ngFor
let-notification
[ngForOf]="notifications"
let-i="index"
>
<ng-template [ngIf]="notification.imagem">
<li class="notification-container-list-body-item">
<a
class="list-group-item notification-container-list-body-item-image"
routerLink="{{ notification.link }}"
>
<img src="{{ notification.imagem }}" alt="" />
<div>
<div>
{{ notification.titulo }}
</div>
<div>
{{ notification.descricao }}
</div>
</div>
</a>
<button
class="btn delete-notification"
(click)="dropdownPersist($event)"
(click)="deleteNotification(notification.id)"
>
<i class="fa fa-close"></i>
</button>
</li>
</ng-template>
<ng-template [ngIf]="!notification.imagem">
<li class="notification-container-list-body-item">
<a
class="list-group-item notification-container-list-body-item-noimage"
href="{{ notification.link }}"
>
<div>
<div>
{{ notification.titulo }}
</div>
<div>
{{ notification.descricao }}
</div>
</div>
</a>
<button
class="btn delete-notification"
(click)="dropdownPersist($event)"
(click)="deleteNotification(notification.id)"
>
<i class="fa fa-close"></i>
</button>
</li>
</ng-template>
</ng-template>
</ul>
</div>
</div>
</div>
这是我的 SCSS 代码:
p,
a {
margin: 0;
padding: 0;
border: 0;
text-decoration: none;
}
.notification-button {
border-color: transparent;
box-shadow: none;
i {
color: #fff;
}
&:focus {
i {
color: #0ff;
}
}
}
.notification-container-header {
text-align: center;
font-size: 0.9rem;
padding-top: 0px;
padding-bottom: 0px;
border-bottom: 0px;
border-radius: 0;
background-color: #0ff;
color: #000;
font-weight: 500;
}
.notification-container-list-body {
margin-left: 3px;
margin-right: 3px;
ul {
margin-bottom: 3.5px;
max-height: 250px;
overflow: auto;
}
}
.notification-container-list-body-item {
display: grid;
background: #000;
grid-template-columns: 1fr 0.1fr;
padding: 10px 10px 6px 11px;
border-bottom: 1px solid #fff;
}
.notification-container-list-body-item-image {
background: #000;
display: grid;
grid-template-columns: 0.2fr 1fr;
justify-content: center;
img {
height: 30px;
width: 60px;
padding-right: 9px;
}
div {
text-align: left;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 200px;
color: #fff;
&:nth-child(1) {
font-size: 10px;
}
&:nth-child(2) {
font-size: 14px;
}
}
}
.notification-container-list-body-item-noimage {
@extend .notification-container-list-body-item-image;
grid-template-columns: 1.9fr 0.1fr;
div {
width: 261px;
}
}
.delete-notification {
padding: 0;
border-color: transparent;
box-shadow: none;
i {
height: 12px;
width: 12px;
color: #646464;
}
&:focus {
i {
color: #646464;
}
}
}
@media (max-width: 576px) {
.notification-container-header {
margin-top: 0;
border: 0;
}
.notification-container-list-body-item {
grid-template-columns: 1.7fr 0.3fr;
padding: 10px 10px 6px 11px;
}
.notification-container-list-body-item-image {
img {
height: 30px;
width: 70px;
padding-right: 9px;
align-self: center;
}
div {
color: #fff;
&:nth-child(1) {
font-size: 12px;
}
&:nth-child(2) {
font-size: 16px;
}
}
}
.notification-container-list-body-item-noimage {
grid-template-columns: 2.3fr 0.3fr;
}
}
我也在用Angular9,制作动态内容。 有人可以帮忙吗?
.notification-container-list-body {
width: 100%; <=====================================================
margin-left: 3px;
margin-right: 3px;
ul {
margin-bottom: 3.5px;
max-height: 250px;
overflow: auto;
}
}