A Pen by Jake Albaugh on CodePen.
Last active
August 29, 2015 14:21
-
-
Save ja-k-e/e17b7bf6ea618d9a2ebb to your computer and use it in GitHub Desktop.
CSS Modal :target Selector
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <a href="#target-content" id="button">Open CSS Modal via <code>:target</code></a> | |
| <div id="target-content"> | |
| <a href="#" class="close"></a> | |
| <div id="target-inner"> | |
| <h2>CSS Modal</h2> | |
| This modal is open because its id is the target in the <code>href</code> of the link. You can style an element's target state with the selector <code>:target</code>. When this modal is toggled, an invisible link with <code>href="#"</code> is positioned absolutely behind the modal content. Clicking it will change the target and thus close the modal. | |
| </div> | |
| </div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #target-content | |
| // content wrapper full window size | |
| position: fixed | |
| top: 0 | |
| right: 0 | |
| bottom: 0 | |
| left: 0 | |
| // so we can click through it when transparent | |
| pointer-events: none | |
| // transparent | |
| opacity: 0 | |
| // sexy fade | |
| transition: opacity 200ms | |
| // :target selects when href click is "#target-content" | |
| &:target | |
| // reenable clicking | |
| pointer-events: all | |
| // show that ish | |
| opacity: 1 | |
| // the white centered content | |
| #target-inner | |
| position: absolute | |
| display: block | |
| padding: 48px | |
| line-height: 1.8 | |
| width: 70% | |
| top: 50% | |
| left: 50% | |
| transform: translateX(-50%) translateY(-50%) | |
| box-shadow: 0px 12px 24px rgba(0,0,0,0.2) | |
| background: white | |
| color: #34495E | |
| h2 | |
| margin-top: 0 | |
| code | |
| font-weight: bold | |
| // the giant invisible close area (making a new target "#") | |
| a.close | |
| content: '' | |
| position: absolute | |
| top: 0 | |
| right: 0 | |
| bottom: 0 | |
| left: 0 | |
| background-color: #34495E | |
| opacity: 0.5 | |
| transition: opacity 200ms | |
| &:hover | |
| opacity: 0.4 | |
| // unimportant stuff | |
| body | |
| background-color: #ECF0F1 | |
| color: #444 | |
| #button | |
| position: absolute | |
| top: 50% | |
| left: 50% | |
| transform: translateX(-50%) translateY(-50%) | |
| padding: 16px 24px | |
| border-radius: 1px | |
| text-decoration: none | |
| font-size: 24px | |
| display: block | |
| color: white | |
| background-color: #34495E | |
| text-align: center | |
| font-weight: 100 | |
| transition: box-shadow 200ms | |
| border-radius: 4px | |
| &:hover | |
| box-shadow: 0px 12px 24px rgba(0,0,0,0.2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment