'How to display a full screen modal
I'm trying to display a full screen modal but nothing seems to work. I tried to use the size: "lg" but the result is still way too small. I think it could be solved with CSS but I'm not able to make the solutions I found on the internet work.
Here is my html template:
<button (click)="open(content)">Open modal</button>
<ng-template #content let-c="close" let-d="dismiss">
<div class="modal-header">
<h3>Title</h3>
<button type="button" class="close" aria-label="Close" (click)="d('Cross click')">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Hello</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-outline-dark" (click)="c('Close click')">Close</button>
</div>
</ng-template>
and here is the corresponding TS code :
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
export class CustomHomeComponent {
constructor(
private modalService: NgbModal
) {
open(content) {
this.modalService.open(content);
}
}
Solution 1:[1]
You can override modal container styles
Etc:
.modal{
width:100%;
Position:absolute;
Left:0;
Right:0;
Top:0;
Bottom:0
}
Solution 2:[2]
check this example it may help you
@import url(https://fonts.googleapis.com/css?family=Roboto+Condensed:300,400);
.font-roboto {
font-family: 'roboto condensed';
}
* {
box-sizing: border-box;
}
body {
.font-roboto();
}
.btn {
height: 40px;
border-radius: 0;
// focus
&:focus,
&:active,
&:active:focus {
box-shadow: none;
outline: none;
}
}
.btn-modal {
position: absolute;
top: 50%;
left: 50%;
margin-top: -20px;
margin-left: -100px;
width: 200px;
}
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
font-weight: 300;
font-size: 1.6rem;
color: #fff;
color: lighten(#484b5b, 20%);
color: #fff;
text-align: center;
background: #60cc69;
border: 1px solid #36a940;
border-bottom: 3px solid #36a940;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
// active
&:active {
border-bottom: 1px solid #36a940;
}
}
.btn-default,
.btn-default:hover,
.btn-default:focus,
.btn-default:active {
font-weight: 300;
font-size: 1.6rem;
color: #fff;
text-align: center;
background: darken(#dcdfe4, 10%);
border: 1px solid darken(#dcdfe4, 20%);
border-bottom: 3px solid darken(#dcdfe4, 20%);
// active
&:active {
border-bottom: 1px solid darken(#dcdfe4, 20%);
}
}
.btn-secondary,
.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
color: #cc7272;
background: transparent;
border: 0;
}
h1,
h2,
h3 {
color: #60cc69;
line-height: 1.5;
// first
&:first-child {
margin-top: 0;
}
}
p {
font-size: 1.4em;
line-height: 1.5;
color: lighten(#5f6377, 20%);
// last
&:last-child {
margin-bottom: 0;
}
}
::-webkit-scrollbar {
-webkit-appearance: none;
width: 10px;
background: #f1f3f5;
border-left: 1px solid darken(#f1f3f5, 10%);
}
::-webkit-scrollbar-thumb {
background: darken(#f1f3f5, 20%);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" type="text/javascript"></script>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style>
.modal {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
overflow: hidden;
}
.modal-dialog {
position: fixed;
margin: 0;
width: 100%;
height: 100%;
padding: 0;
}
.modal-content {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
border: 2px solid #3c7dcf;
border-radius: 0;
box-shadow: none;
}
.modal-header {
position: absolute;
top: 0;
right: 0;
left: 0;
height: 50px;
padding: 10px;
background: #6598d9;
border: 0;
}
.modal-title {
font-weight: 300;
font-size: 2em;
color: #fff;
line-height: 30px;
}
.modal-body {
position: absolute;
top: 50px;
bottom: 60px;
width: 100%;
font-weight: 300;
overflow: auto;
}
.modal-footer {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 60px;
padding: 10px;
background: #f1f3f5;
}
</style>
<!-- view modal -->
<button class="btn btn-primary btn-modal" data-toggle="modal" data-target="#fsModal">
View Fullscreen Modal
</button>
<!-- view modal -->
<!-- modal -->
<div id="fsModal" class="modal animated bounceIn" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<!-- dialog -->
<div class="modal-dialog">
<!-- content -->
<div class="modal-content">
<!-- header -->
<div class="modal-header">
<h1 id="myModalLabel" class="modal-title">
Modal title
</h1>
</div>
<!-- header -->
<!-- body -->
<div class="modal-body">
<h2>1. Modal sub-title</h2>
<p>Liquor ipsum dolor sit amet bearded lady, grog murphy's bourbon lancer. Kamikaze vodka gimlet; old rip van winkle, lemon drop martell salty dog tom collins smoky martini ben nevis man o'war. Strathmill grand marnier sea breeze b & b mickey slim.
Cactus jack aberlour seven and seven, beefeater early times beefeater kalimotxo royal arrival jack rose. Cutty sark scots whisky b & b harper's finlandia agent orange pink lady three wise men gin fizz murphy's. Chartreuse french 75 brandy daisy
widow's cork 7 crown ketel one captain morgan fleischmann's, hayride, edradour godfather. Long island iced tea choking hazard black bison, greyhound harvey wallbanger, "gibbon kir royale salty dog tonic and tequila."</p>
<h2>2. Modal sub-title</h2>
<p>The last word drumguish irish flag, hurricane, brandy manhattan. Lemon drop, pulteney fleischmann's seven and seven irish flag pisco sour metaxas, hayride, bellini. French 75 wolfram christian brothers, calvert painkiller, horse's neck old bushmill's
gin pahit. Monte alban glendullan, edradour redline cherry herring anisette godmother, irish flag polish martini glen spey. Abhainn dearg bloody mary amaretto sour, ti punch black cossack port charlotte tequila slammer? Rum swizzle glen keith
j & b sake bomb harrogate nights 7 crown! Hairy virgin tomatin lord calvert godmother wolfschmitt brass monkey aberfeldy caribou lou. Macuá, french 75 three wise men.</p>
<h2>3. Modal sub-title</h2>
<p>Pisco sour daiquiri lejon bruichladdich mickey slim sea breeze wolfram kensington court special: pink lady white lady or delilah. Pisco sour glen spey, courvoisier j & b metaxas glenlivet tormore chupacabra, sambuca lorraine knockdhu gin and tonic
margarita schenley's." Bumbo glen ord the macallan balvenie lemon split presbyterian old rip van winkle paradise gin sling. Myers black bison metaxa caridan linkwood three wise men blue hawaii wine cooler?" Talisker moonwalk cosmopolitan wolfram
zurracapote glen garioch patron saketini brandy alexander, singapore sling polmos krakow golden dream. Glenglassaugh usher's wolfram mojito ramos gin fizz; cactus jack. Mai-tai leite de onça bengal; crown royal absolut allt-á-bhainne jungle
juice bacardi benrinnes, bladnoch. Cointreau four horsemen aultmore, "the amarosa cocktail vodka gimlet ardbeg southern comfort salmiakki koskenkorva."</p>
</div>
<!-- body -->
<!-- footer -->
<div class="modal-footer">
<button class="btn btn-secondary" data-dismiss="modal">
close
</button>
<button class="btn btn-default">
Default
</button>
<button class="btn btn-primary">
Primary
</button>
</div>
<!-- footer -->
</div>
<!-- content -->
</div>
<!-- dialog -->
</div>
<!-- modal -->
Solution 3:[3]
I finally solved my problem by overriding modal-dialog CSS :
.modal-dialog{
max-width:100%;
}
Solution 4:[4]
I did this to use it dynamically
custom css:
.modal-open .fullscreen .modal-dialog {
max-width: 95%;
}
modal setup:
this.modalService.open(content, { windowClass: 'fullscreen' });
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Javad Khodadadi |
Solution 2 | |
Solution 3 | Yaël |
Solution 4 | Lex |