Bootstrap で Modal の中身だけ印刷

Bootstrap で Modal が表示されているときは body に .modal-open というクラスが追加されます。

 - [bootstrap/js/modal.js at v3.2.0 · twbs/bootstrap](https://github.com/twbs/bootstrap/blob/v3.2.0/js/modal.js#L56 "bootstrap/js/modal.js at v3.2.0 · twbs/bootstrap")
 - [bootstrap/js/modal.js at v3.2.0 · twbs/bootstrap](https://github.com/twbs/bootstrap/blob/v3.2.0/js/modal.js#L107 "bootstrap/js/modal.js at v3.2.0 · twbs/bootstrap")

なので、次のように .modal-open があるときに modal 以外を非表示にする CSS を書いておけば、modal の表示時に中身だけ印刷されるようにできます。

```css:style.css
@media print {
    .modal-open > .container,
    .modal-open > footer {
        display: none !important;
    }
}
```

次のようにしても大丈夫かと思ったのですが、なぜか Chrome で印刷プレビューが表示されなくなってしまいました（FireFox や IE だと大丈夫なのですが）。

```css:style.css
@media print {
    .modal-open > *:not(.modal) {
        display: none !important;
    }
}
```

**↓追記**

改めて確認すると、上記のどちらの方法でも Chrome では印刷できませんでした。
どうやら可視な要素がすべて position:fixed だと印刷できなくなるようです。

次のように書けば Chrome でもモーダルの中身だけを印刷できました。

```css:style.css
@media print {
    .modal-open > * {
        display: none !important;
    }
    .modal-open > .modal {
        display: inherit !important;
        position: inherit !important;
    }
}
```

**↑追記**

HTML は次のように body の直下に .modal を書いておきます。

```html:index.html
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="style.css">
    <style>
        footer {
            margin: 20px;
            padding: 10px;
            border-top: 1px solid #cccccc;
            text-align: center;
        }
    </style>
</head>
<body>

<nav class="navbar navbar-default">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">Example</a>
        </div>
        <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li><a href="#">Home</a></li>
                <li><a href="#">Page1</a></li>
                <li><a href="#">Page2</a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container">
    <h1>ページのタイトル</h1>
    <p>あいうえお。あいうえお。あいうえお。あいうえお。あいうえお。</p>
    <button class="btn btn-primary btn-lg hidden-print" data-toggle="modal" data-target="#modal">モーダル</button>
</div>

<footer>
    <div class="container">
        <p>Copyright &copy; 2014 Unknown All rights reserved.</p>
    </div>
</footer>

<!-- Modal -->
<div class="modal fade" id="modal" tabindex="-1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close hidden-print" data-dismiss="modal">
                    <span>&times;</span><span class="sr-only">閉じる</span>
                </button>
                <h4 class="modal-title">モーダルのタイトル</h4>
            </div>
            <div class="modal-body">
                かきくけこ。かきくけこ。かきくけこ。かきくけこ。かきくけこ。
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default hidden-print" data-dismiss="modal">閉じる</button>
                <p class="visible-print">Copyright &copy; 2014 Unknown All rights reserved.</p>
            </div>
        </div>
    </div>
</div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</body>
</html>
```