--- layout: page title: Modal --- Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults. **Due to how HTML5 defines its semantics, the `autofocus` HTML attribute has no effect in Bootstrap modals.** To achieve the same effect, use some custom JavaScript: {% highlight js %} $('#myModal').on('shown.bs.modal', function () { $('#myInput').focus() }) {% endhighlight %}
Be sure not to open a modal while another is still visible. Showing more than one modal at a time requires custom code.
Always try to place a modal's HTML code in a top-level position in your document to avoid other components affecting the modal's appearance and/or functionality.
There are some caveats regarding using modals on mobile devices. See our browser support docs for details.
Be sure to add role="dialog"
to .modal
, aria-labelledby="myModalLabel"
attribute to reference the modal title, and aria-hidden="true"
to tell assistive technologies to skip the modal's DOM elements.
Additionally, you may give a description of your modal dialog with aria-describedby
on .modal
.
Embedding YouTube videos in modals requires additional JavaScript not in Bootstrap to automatically stop playback and more. See this helpful Stack Overflow post for more information.
Name | type | default | description |
---|---|---|---|
backdrop | boolean or the string 'static' |
true | Includes a modal-backdrop element. Alternatively, specify static for a backdrop which doesn't close the modal on click. |
keyboard | boolean | true | Closes the modal when escape key is pressed |
show | boolean | true | Shows the modal when initialized. |
Event Type | Description |
---|---|
show.bs.modal | This event fires immediately when the show instance method is called. If caused by a click, the clicked element is available as the relatedTarget property of the event. |
shown.bs.modal | This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). If caused by a click, the clicked element is available as the relatedTarget property of the event. |
hide.bs.modal | This event is fired immediately when the hide instance method has been called. |
hidden.bs.modal | This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete). |
loaded.bs.modal | This event is fired when the modal has loaded content using the remote option. |