Я использую Twitter-Bootstrap, и мне нужно иметь возможность печатать страницу так, как она выглядит в браузере. Я могу печатать другие страницы, созданные с помощью Twitter-Bootstrap, но я не могу напечатать свою страницу, которая использует чисто Twitter-Bootstrap. Я где-то пропустил тег?
Официальная страница о ТБ при печати:
Моя страница при печати:
Как выглядит моя страница:
printing
twitter-bootstrap
Jay Q.
источник
источник
Ответы:
Убедитесь, что для печати назначена таблица стилей.
Это может быть отдельная таблица стилей:
или один, которым вы делитесь для всех устройств:
Затем вы можете написать свои стили для принтеров в отдельных таблицах стилей или в общей, используя медиа-запросы:
источник
media="screen"
, что не будет видно на принтере. Вы можете либо переключить это наmedia="all"
, либо просто удалить,media
как предполагает приведенный выше ответ.Обновление Bootstrap 3.2: (текущий выпуск)
Текущая стабильная версия Bootstrap - 3.2.0 .
В версии 3.2 visible-print устарела, поэтому вы должны использовать это так:
Обновление Bootstrap 3:
Классы печати теперь в документах: http://getbootstrap.com/css/#responsive-utilities-print
Bootstrap 2.3.1 версия:
После добавления файла bootstrap.css в ваш HTML
найдите части, которые вы не хотите печатать, и добавьте
hidden-print
класс в теги. Потому что файл CSS включает в себя это:источник
body
) невидимым.hidden-print
, но хочу переопределить определенный элемент, который будет показан?Заменить каждый
col-md-
наcol-xs-
Например: заменить каждый
col-md-6
наcol-xs-6
.Это то, что помогло мне избавиться от этой проблемы, вы можете увидеть, что вы должны заменить.
источник
div
шла ниже предыдущей. Этот ответ дал мне подсказку, я добавилcol-xs-*
перед каждым,col-md-*
и это решило проблему. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не тестировал добавление контейнера,<div class="row"></div>
который, возможно, также решил проблему (кажется очевидным).Там есть раздел
@media print
файле css кода (Bootstrap 3.3.1 [UPDATE:] до 3.3.5), который удаляет практически все стили, поэтому вы получаете довольно мягкие распечатки, даже когда он работает.На данный момент мне пришлось прибегнуть к удалению
@media print
раздела из bootstrap.css - что меня действительно не устраивает, но мои пользователи хотят получить прямой снимок экрана, так что сейчас это нужно сделать. Если кто-нибудь знает, как подавить его без изменений в файлах начальной загрузки, я был бы очень заинтересован.Вот «кодовый блок», начинающийся со строки № 192:
источник
Лучший вариант, который я нашел, был http://html2canvas.hertzen.com/
http://jsfiddle.net/nurbsurf/1235emen/
источник
В случае, если кто-то ищет решение для Bootstrap v2.XX здесь. Я оставляю решение, которое я использовал. Это не полностью проверено на всех браузерах, но это может быть хорошим началом.
1) убедитесь, что атрибут media для
bootstrap-responsive.css
isscreen
.2) создайте
print.css
и убедитесь, что его медиа-атрибутprint
3) внутри
print.css
добавьте «ширину» вашего сайта в html & body4.) Воспроизвести необходимые классы медиазапроса,
print.css
потому что они были внутри,bootstrap-responsive.css
и мы отключили его при печати.Вот полная версия
print.css
:источник
2 вещи к вашему сведению -
источник
Чтобы сделать вид печати похожим на планшет или рабочий стол, включите загрузчик как .less, а не как .css, а затем вы можете перезаписать реагирующие на загрузку классы в конце файла bootstrap_variables, например, так:
Не беспокойтесь о том, чтобы поместить эти переменные в конец файла. LESS поддерживает отложенную загрузку переменных, поэтому они будут применены.
источник
Если вы хотите сохранить столбцы на бумаге формата A4 (около 540 пикселей), это хорошая идея
Вы можете использовать это так:
<div class="col-sm-4 col-print-A4-4">
источник