Mencetak Dokumen Web dengan Benar dengan CSS Desain web dan optimisasi mesin pencari Versi cetak halaman html

Menerima data pribadi tidak selalu berarti meretas - terkadang dipublikasikan di domain publik. Mengetahui pengaturan Google dan sedikit kecerdikan akan memungkinkan Anda menemukan banyak hal menarik - mulai dari nomor kartu kredit hingga dokumen FBI.

PERINGATAN

Semua informasi disediakan untuk tujuan informasi saja. Baik editor maupun penulis tidak bertanggung jawab atas segala kemungkinan kerugian yang disebabkan oleh materi artikel ini.

Semuanya terhubung ke Internet hari ini, tidak terlalu peduli dengan pembatasan akses. Oleh karena itu, banyak data pribadi menjadi mangsa mesin pencari. Robot laba-laba tidak lagi terbatas pada halaman web, tetapi mengindeks semua konten yang tersedia di Web dan terus menambahkan informasi rahasia ke database mereka. Mempelajari rahasia ini mudah - Anda hanya perlu tahu cara menanyakannya.

Mencari file

Di tangan yang cakap, Google akan segera menemukan segala sesuatu yang buruk di Web, seperti informasi pribadi dan file untuk penggunaan resmi. Mereka sering disembunyikan seperti kunci di bawah karpet: tidak ada batasan akses nyata, data hanya terletak di bagian belakang situs, di mana tautan tidak mengarah. Antarmuka web Google standar hanya menyediakan pengaturan pencarian lanjutan dasar, tetapi ini pun sudah cukup.

Ada dua operator yang dapat Anda gunakan untuk membatasi pencarian Google ke file dari jenis tertentu: filetype dan ext . Yang pertama menetapkan format yang ditentukan oleh mesin pencari oleh header file, yang kedua - ekstensi file, terlepas dari konten internalnya. Saat mencari dalam kedua kasus, Anda hanya perlu menentukan ekstensi. Awalnya, operator ext nyaman digunakan dalam kasus di mana tidak ada fitur format khusus untuk file (misalnya, untuk mencari file konfigurasi ini dan cfg, yang dapat berisi apa saja). Sekarang algoritme Google telah berubah, dan tidak ada perbedaan yang terlihat antara operator - hasilnya sama dalam banyak kasus.


Memfilter keluaran

Secara default, Google mencari kata-kata dan secara umum untuk setiap karakter yang dimasukkan di semua file pada halaman yang diindeks. Anda dapat membatasi cakupan pencarian berdasarkan domain tingkat atas, situs tertentu, atau berdasarkan lokasi urutan yang diinginkan dalam file itu sendiri. Untuk dua opsi pertama, pernyataan situs digunakan, diikuti dengan nama domain atau situs yang dipilih. Dalam kasus ketiga, seluruh rangkaian operator memungkinkan Anda mencari informasi di bidang layanan dan metadata. Misalnya, allinurl akan menemukan yang ditentukan di badan tautan itu sendiri, allinanchor - dalam teks yang disediakan dengan tag , allintitle - di header halaman, allintext - di badan halaman.

Untuk setiap operator ada versi yang lebih ringan dengan nama yang lebih pendek (tanpa awalan semua). Perbedaannya adalah allinurl akan menemukan tautan dengan semua kata, sedangkan inurl hanya akan menemukan tautan dengan kata pertama. Kata kedua dan selanjutnya dari kueri dapat muncul di mana saja di halaman web. Operator inurl juga berbeda dari yang lain yang serupa dalam arti - situs . Yang pertama juga memungkinkan Anda menemukan urutan karakter apa pun di tautan ke dokumen yang diinginkan (misalnya, /cgi-bin/), yang banyak digunakan untuk menemukan komponen dengan kerentanan yang diketahui.

Mari kita coba dalam praktek. Kami mengambil filter allintext dan membuat kueri mengembalikan daftar nomor kartu kredit dan kode verifikasi, yang akan kedaluwarsa hanya setelah dua tahun (atau ketika pemiliknya bosan memberi makan semua orang berturut-turut).

Allintext: tanggal kedaluwarsa nomor kartu /2017 cvv

Ketika Anda membaca berita bahwa seorang peretas muda "meretas ke server" Pentagon atau NASA, mencuri informasi rahasia, maka dalam banyak kasus justru teknik dasar ini menggunakan Google. Misalkan kita tertarik pada daftar karyawan NASA dan detail kontak mereka. Tentunya daftar seperti itu dalam bentuk elektronik. Untuk kenyamanan atau karena kekhilafan, itu juga bisa terletak di situs web organisasi itu sendiri. Adalah logis bahwa dalam hal ini tidak akan ada referensi untuk itu, karena dimaksudkan untuk penggunaan internal. Kata-kata apa yang bisa ada dalam file seperti itu? Setidaknya - bidang "alamat". Sangat mudah untuk menguji semua asumsi ini.


inurl:nasa.gov filetype:xlsx "alamat"


Kami menggunakan birokrasi

Temuan seperti itu adalah hal sepele yang menyenangkan. Tangkapan yang benar-benar solid berasal dari pengetahuan yang lebih rinci tentang Operator Webmaster Google, Web itu sendiri, dan struktur dari apa yang Anda cari. Mengetahui detailnya, Anda dapat dengan mudah memfilter output dan menyempurnakan properti file yang Anda perlukan untuk mendapatkan data yang sangat berharga. Sungguh lucu bahwa birokrasi datang untuk menyelamatkan di sini. Ini menghasilkan formulasi khas yang membuatnya nyaman untuk mencari informasi rahasia yang secara tidak sengaja bocor ke Web.

Misalnya, stempel pernyataan Distribusi, yang wajib ada di kantor Departemen Pertahanan AS, berarti pembatasan standar pada distribusi dokumen. Huruf A menandai rilis publik di mana tidak ada rahasia; B - ditujukan untuk penggunaan internal saja, C - sangat rahasia, dan seterusnya hingga F. Secara terpisah, ada huruf X, yang menandai informasi sangat berharga yang mewakili rahasia negara tingkat tertinggi. Biarkan mereka yang bertugas untuk mencari dokumen tersebut, dan kami akan membatasi diri pada file dengan huruf C. Menurut DoDI 5230.24, penandaan tersebut diberikan pada dokumen yang berisi deskripsi teknologi kritis yang berada di bawah kendali ekspor. Anda dapat menemukan informasi yang dijaga dengan hati-hati di situs dalam domain tingkat atas .mil yang dialokasikan untuk Angkatan Darat AS.

"PERNYATAAN DISTRIBUSI C" inurl:navy.mil

Sangat mudah bahwa hanya situs dari Departemen Pertahanan AS dan organisasi kontraknya yang dikumpulkan dalam domain .mil. Hasil pencarian terbatas domain sangat bersih, dan judulnya berbicara sendiri. Praktis tidak ada gunanya mencari rahasia Rusia dengan cara ini: kekacauan berkuasa di domain .ru dan .rf, dan nama-nama banyak sistem senjata terdengar seperti botani (PP "Kiparis", senjata self-propelled "Acacia") atau bahkan luar biasa (TOS "Pinocchio").


Dengan hati-hati memeriksa dokumen apa pun dari situs di domain .mil, Anda dapat melihat penanda lain untuk mempersempit pencarian Anda. Misalnya, referensi ke pembatasan ekspor "Sec 2751", yang juga nyaman untuk mencari informasi teknis yang menarik. Dari waktu ke waktu, itu dihapus dari situs resmi, tempat pertama kali muncul, jadi jika Anda tidak dapat mengikuti tautan yang menarik di hasil pencarian, gunakan cache Google (operator cache) atau situs web Arsip Internet.

Kami naik ke awan

Selain dokumen yang secara tidak sengaja dideklasifikasi dari departemen pemerintah, tautan ke file pribadi dari Dropbox dan layanan penyimpanan data lainnya yang membuat tautan "pribadi" ke data yang dipublikasikan secara publik terkadang muncul di cache Google. Lebih buruk lagi dengan layanan alternatif dan buatan sendiri. Misalnya, kueri berikut menemukan data semua klien Verizon yang memiliki server FTP terinstal dan secara aktif menggunakan router di router mereka.

Allinurl:ftp://verizon.net

Sekarang ada lebih dari empat puluh ribu orang pintar seperti itu, dan pada musim semi 2015 ada urutan besarnya lebih banyak. Alih-alih Verizon.net, Anda dapat mengganti nama penyedia terkenal mana pun, dan semakin terkenal, semakin besar tangkapannya. Melalui server FTP internal, Anda dapat melihat file di drive eksternal yang terhubung ke router. Biasanya ini adalah NAS untuk pekerjaan jarak jauh, cloud pribadi, atau semacam unduhan file peer-to-peer. Semua konten media tersebut diindeks oleh Google dan mesin pencari lainnya, sehingga Anda dapat mengakses file yang disimpan di drive eksternal melalui tautan langsung.

Mengintip konfigurasi

Sebelum migrasi grosir ke awan, server FTP sederhana, yang juga tidak memiliki kerentanan, diatur sebagai penyimpanan jarak jauh. Banyak dari mereka masih relevan sampai sekarang. Misalnya, program WS_FTP Professional yang populer menyimpan data konfigurasi, akun pengguna, dan kata sandi dalam file ws_ftp.ini. Mudah ditemukan dan dibaca karena semua entri disimpan dalam teks biasa dan kata sandi dienkripsi menggunakan algoritma Triple DES setelah kebingungan minimal. Di sebagian besar versi, cukup membuang byte pertama saja sudah cukup.

Mendekripsi kata sandi semacam itu mudah dilakukan dengan menggunakan utilitas Dekripsi Kata Sandi WS_FTP atau layanan web gratis.

Ketika berbicara tentang meretas situs sewenang-wenang, biasanya berarti mendapatkan kata sandi dari log dan cadangan file konfigurasi aplikasi CMS atau e-commerce. Jika Anda mengetahui struktur tipikalnya, maka Anda dapat dengan mudah menunjukkan kata kuncinya. Baris seperti yang ditemukan di ws_ftp.ini sangat umum. Misalnya, Drupal dan PrestaShop selalu memiliki ID pengguna (UID) dan kata sandi yang sesuai (pwd), dan semua informasi disimpan dalam file dengan ekstensi .inc. Anda dapat mencarinya seperti ini:

"pwd=" "UID=" ext:inc

Kami mengungkapkan kata sandi dari DBMS

Dalam file konfigurasi server SQL, nama pengguna dan alamat email disimpan dalam teks yang jelas, dan alih-alih kata sandi, hash MD5 mereka direkam. Mendekripsi mereka, secara tegas, tidak mungkin, tetapi Anda dapat menemukan kecocokan di antara pasangan kata sandi hash yang diketahui.

Sampai saat ini, ada DBMS yang bahkan tidak menggunakan hashing password. File konfigurasi dari salah satu dari mereka hanya dapat dilihat di browser.

Intext:DB_PASSWORD filetype:env

Dengan munculnya server Windows, tempat file konfigurasi sebagian diambil oleh registri. Anda dapat mencari melalui cabang-cabangnya dengan cara yang persis sama, menggunakan reg sebagai jenis file. Misalnya seperti ini:

Jenis berkas:reg HKEY_CURRENT_USER "Kata Sandi"=

Jangan Lupa Yang Jelas

Terkadang dimungkinkan untuk mendapatkan informasi rahasia dengan bantuan data yang tidak sengaja dibuka dan ditangkap oleh Google. Pilihan ideal adalah menemukan daftar kata sandi dalam beberapa format umum. Hanya orang yang putus asa yang dapat menyimpan informasi akun dalam file teks, dokumen Word, atau spreadsheet Excel, tetapi jumlahnya selalu cukup.

Jenis file:xls inurl:kata sandi

Di satu sisi, ada banyak cara untuk mencegah insiden seperti itu. Penting untuk menentukan hak akses yang memadai di htaccess, patch CMS, jangan gunakan skrip kiri dan tutup lubang lainnya. Ada juga file dengan daftar pengecualian robots.txt, yang melarang mesin pencari mengindeks file dan direktori yang ditentukan di dalamnya. Di sisi lain, jika struktur robots.txt di beberapa server berbeda dari yang standar, maka segera menjadi jelas apa yang mereka coba sembunyikan di dalamnya.

Daftar direktori dan file di situs mana pun didahului oleh indeks prasasti standar. Karena itu harus muncul dalam judul untuk tujuan layanan, masuk akal untuk membatasi pencariannya ke operator intitle. Hal-hal menarik dapat ditemukan di direktori /admin/, /personal/, /etc/ dan bahkan /secret/.

Ikuti pembaruannya

Relevansi sangat penting di sini: kerentanan lama ditutup sangat lambat, tetapi Google dan hasil pencariannya terus berubah. Bahkan ada perbedaan antara filter "detik terakhir" (&tbs=qdr:s di akhir url permintaan) dan filter "waktu nyata" (&tbs=qdr:1).

Interval waktu dari tanggal pembaruan file terakhir dari Google juga ditunjukkan secara implisit. Melalui antarmuka web grafis, Anda dapat memilih salah satu periode tipikal (jam, hari, minggu, dan sebagainya) atau mengatur rentang tanggal, tetapi metode ini tidak cocok untuk otomatisasi.

Dari tampilan bilah alamat, orang hanya dapat menebak tentang cara membatasi keluaran hasil menggunakan konstruksi &tbs=qdr:. Huruf y setelah itu menentukan batas satu tahun (&tbs=qdr:y), m menunjukkan hasil untuk bulan terakhir, w untuk minggu ini, d untuk hari yang lalu, h untuk jam terakhir, n untuk menit, dan s untuk beri saya waktu sebentar. Hasil terbaru yang baru saja diketahui Google ditemukan menggunakan filter &tbs=qdr:1.

Jika Anda perlu menulis skrip yang rumit, akan berguna untuk mengetahui bahwa rentang tanggal diatur di Google dalam format Julian melalui operator rentang tanggal. Misalnya, ini adalah bagaimana Anda dapat menemukan daftar dokumen PDF dengan kata rahasia yang diunggah antara 1 Januari dan 1 Juli 2015.

Jenis file rahasia: rentang tanggal pdf: 2457024-2457205

Rentang ditentukan dalam format tanggal Julian tanpa desimal. Tidak nyaman untuk menerjemahkannya secara manual dari kalender Gregorian. Lebih mudah menggunakan konverter tanggal.

Menargetkan dan memfilter lagi

Selain menentukan operator tambahan dalam kueri pencarian, mereka dapat dikirim langsung di badan tautan. Misalnya, sifat filetype:pdf sesuai dengan konstruksi as_filetype=pdf. Dengan demikian, akan lebih mudah untuk mengatur klarifikasi apa pun. Katakanlah output hasil hanya dari Republik Honduras ditetapkan dengan menambahkan konstruksi cr=countryHN ke URL pencarian, tetapi hanya dari kota Bobruisk - gcs=Bobruisk . Lihat bagian pengembang untuk daftar lengkap .

Alat otomatisasi Google dirancang untuk membuat hidup lebih mudah, tetapi sering kali menambah kerumitan. Misalnya, kota pengguna ditentukan oleh IP pengguna melalui WHOIS. Berdasarkan informasi ini, Google tidak hanya menyeimbangkan beban antar server, tetapi juga mengubah hasil pencarian. Bergantung pada wilayah, untuk kueri yang sama, hasil yang berbeda akan masuk ke halaman pertama, dan beberapa di antaranya mungkin benar-benar tersembunyi. Merasa seperti kosmopolitan dan mencari informasi dari negara mana pun akan membantu kode dua hurufnya setelah direktif gl=country . Misalnya, kode untuk Belanda adalah NL, sedangkan Vatikan dan Korea Utara tidak memiliki kode sendiri di Google.

Seringkali hasil pencarian dikotori bahkan setelah menggunakan beberapa filter lanjutan. Dalam hal ini, mudah untuk menyaring kueri dengan menambahkan beberapa kata pengecualian ke dalamnya (masing-masing didahului dengan tanda minus). Misalnya perbankan , nama , dan tutorial sering digunakan dengan kata Personal. Oleh karena itu, hasil pencarian yang lebih bersih tidak akan menampilkan contoh kueri buku teks, tetapi yang disempurnakan:

Intitle:"Indeks /Pribadi/" -nama -tutorial -perbankan

Contoh Terakhir

Seorang peretas yang canggih dibedakan oleh fakta bahwa ia menyediakan semua yang ia butuhkan sendiri. Misalnya, VPN adalah hal yang nyaman, tetapi mahal atau sementara dan dengan batasan. Mendaftar sendiri terlalu mahal. Ada baiknya ada langganan grup, dan dengan bantuan Google, mudah untuk menjadi bagian dari grup. Untuk melakukan ini, cukup temukan file konfigurasi Cisco VPN, yang memiliki ekstensi PCF yang agak non-standar dan jalur yang dapat dikenali: Program Files\Cisco Systems\VPN Client\Profiles . Satu permintaan, dan Anda bergabung, misalnya, staf Universitas Bonn yang ramah.

Jenis file: pcf vpn ATAU Grup

INFORMASI

Google menemukan file konfigurasi dengan kata sandi, tetapi banyak di antaranya dienkripsi atau diganti dengan hash. Jika Anda melihat string dengan panjang tetap, maka segera cari layanan dekripsi.

Kata sandi disimpan dalam bentuk terenkripsi, tetapi Maurice Massard telah menulis program untuk mendekripsinya dan menyediakannya secara gratis melalui thecampusgeeks.com.

Dengan bantuan Google, ratusan jenis serangan dan tes penetrasi yang berbeda dilakukan. Ada banyak pilihan, mempengaruhi program populer, format database utama, banyak kerentanan PHP, awan, dan sebagainya. Mengetahui dengan tepat apa yang Anda cari akan mempermudah Anda mendapatkan informasi yang Anda butuhkan (terutama informasi yang tidak ingin Anda publikasikan). Shodan tidak hanya memberikan ide-ide menarik, tetapi juga database sumber daya jaringan yang diindeks!

Pengembangan, pemeliharaan dan promosi situs

Buat halaman web yang "dapat dicetak"

Saat menjelajahi situs di Internet, pengunjung sering mencetak beberapa halaman untuk dikerjakan lebih lanjut, misalnya, untuk diteruskan ke teman, atau sekadar untuk menyimpan informasi yang diperlukan. Terutama sering dicetak halaman dengan deskripsi produk, daftar harga dan rincian kontak organisasi.

Tentu saja, tidak ada yang repot-repot untuk mendapatkan cetakan halaman asli langsung di browser dengan perintah Segel atau kombinasi CTRL+P namun, ini akan mencetak elemen halaman yang tidak perlu - menu, header, dll., yang menyulitkan untuk memahami informasi yang diperlukan. Selain itu, elemen warna saat dicetak pada printer monokrom biasanya terlihat tidak menarik.

Untuk kenyamanan pengguna, pengembang situs biasanya membuat halaman terpisah - versi cetak, yang hanya menyisakan teks yang diperlukan, gambar hitam putih (warna abu-abu) dan informasi kontak untuk komunikasi.

Saat membuat halaman seperti itu, Anda harus menghapus elemen dekoratif yang tidak perlu, mengganti hyperlink dengan teks biasa, menghilangkan penyorotan kata dan frasa berwarna, menggantinya dengan huruf miring atau tebal. Di bagian atas halaman, diinginkan untuk menempatkan logo dan nama perusahaan, nomor telepon, dan alat komunikasi lainnya. Pastikan untuk menentukan nama situs sehingga pengguna tidak perlu mencari dari mana ia mencetak halaman ini.

Di bagian bawah halaman, diinginkan untuk menunjukkan detail kontak lengkap: alamat, telepon, email, ICQ, URL situs web, dll.

Untuk pergi dari halaman utama ke versi cetak Anda dapat menggunakan gambar dan teks yang sesuai, misalnya jenis ini:

Di halaman itu sendiri versi yang dapat dicetak itu dianggap sebagai bentuk yang baik untuk memasang tombol Segel, yang, ketika diklik, membuka jendela pengaturan printer. Untuk ini, metode ini digunakan JavaScript jendela.cetak(); yang mencetak halaman Web di jendela saat ini ke printer. Ini juga merupakan ide yang baik untuk memposting tautan untuk kembali ke halaman utama.

Tombol dapat didekorasi dengan tautan sederhana
Cetak (kode Cetak) dan , tetapi lebih menarik - menggunakan tag :

Kode HTML untuk kombinasi ini adalah:



alamat halaman utama");" />

Dalam kedua kasus, jendela cetakan dokumen standar akan terbuka, yang dapat Anda lihat dengan mengklik contoh tombol yang diberikan.

Terakhir, jangan lupa untuk menyertakan kode penghitung statistik pada halaman cetak untuk melacak jumlah pengunjung yang telah menyimpan "hard copy" deskripsi produk atau layanan Anda, meskipun data ini mungkin tidak selalu menyenangkan Anda. Sayangnya...

    Artikel bermanfaat tentang topik "Pengembangan, pemeliharaan, dan promosi situs"

Di mana dia menunjukkan bahwa halaman pesanan detail mereka tidak dapat digunakan dalam bentuk cetak.

Saya tercengang ketika melihat tweet ini - saya menyadari bahwa sudah lama sejak saya mengoptimalkan gaya untuk dicetak dan saya bahkan tidak berpikir untuk memeriksanya.

Mungkin karena saya menghabiskan banyak waktu untuk mengubah ukuran jendela browser saya untuk memastikan situs saya berfungsi dengan baik dalam semua ukuran dan bentuk, atau mungkin karena saya jarang mencetak halaman untuk diri saya sendiri. Apa pun alasannya, saya benar-benar lupa tentang gaya cetak dan itu buruk.

Mengoptimalkan halaman web untuk pencetakan adalah penting karena dengan mencetak halaman, kami membuat situs dapat diakses semudah mungkin, terlepas dari lingkungannya. Kami tidak boleh membuat asumsi tentang pengguna kami dan perilaku mereka. Orang-orang terus mencetak halaman web. Pikirkan artikel, posting blog, resep, informasi kontak, situs peta, atau daftar real estat. Seseorang pasti akan mencoba mencetak salah satu halaman Anda kapan-kapan.

Saya sudah lama meninggalkan printer rumahan, karena saya selalu mengira printer itu rusak setelah 10 menit bekerja. Tapi tidak semua orang seperti saya. - Haydon Pickering (Pola Desain Inklusif)

Jika Anda menemukan diri Anda dalam posisi yang sama, posting ini akan membantu Anda mendapatkan penyegaran cepat. Jika Anda belum mengoptimalkan halaman Anda untuk dicetak, tips berikut akan membantu Anda memulai.

1. Menghubungkan gaya untuk pencetakan

Cara terbaik untuk memasukkan gaya cetak adalah dengan mendeklarasikan @media directive di CSS Anda.

Body ( ukuran font: 18px; ) @media print ( /* gaya cetak buka di sini */ body ( ukuran font: 28px; ) )

Atau, Anda dapat menyertakan gaya dalam HTML, tetapi ini akan memerlukan permintaan HTTP tambahan.

2. Pengujian

Anda tidak perlu mencetak halaman setiap kali Anda membuat sedikit perubahan gaya. Bergantung pada browser, Anda dapat mengekspor halaman ke PDF, menggunakan pratinjau cetak, atau men-debug langsung di browser.

Untuk men-debug gaya pencetakan di Firefox, buka bilah alat pengembang (Shift + F2 atau Alat > Pengembang Web > Bilah Alat Pengembang), ketik media emulate print di kotak input, dan tekan enter . Tab aktif akan bertindak seolah-olah jenis media dicetak sampai dimuat ulang.

Meniru Gaya Cetak di Firefox

Di Chrome, buka alat pengembang (CMD + Opt + I (macOS) atau Ctrl + Shift + I (Windows) atau menu View > Developer > Developer Tools) dan buka konsol, buka panel render dan pilih Print from the Emulate menu CSSMedia.

Meniru Gaya Cetak di Chrome

3. Satuan pengukuran absolut

Unit absolut buruk di layar tetapi bagus untuk dicetak. Sangat aman untuk menggunakannya dalam gaya cetak, dan bahkan disarankan untuk menggunakan satuan seperti cm , mm , in , pt , atau pc .

Bagian ( margin-bawah: 2cm; )

4. Aturan khusus untuk halaman

Anda dapat mengatur properti khusus untuk halaman yang dicetak, seperti ukuran halaman, orientasi, dan padding, menggunakan direktif @page. Ini sangat berguna jika Anda ingin semua halaman memiliki indentasi tertentu.

@media cetak ( @halaman ( margin: 1cm; ) )

Arahan @page adalah bagian dari spesifikasi Paged Media Module, yang memiliki hal-hal hebat seperti kemampuan untuk memilih halaman pertama yang akan dicetak atau halaman kosong, elemen posisi di sudut halaman, dan banyak lagi. Ini bahkan dapat digunakan untuk mencetak buku.

5. Kelola jeda halaman

Karena halaman yang dicetak, tidak seperti halaman web, tidak ada habisnya, konten akan pecah di antara halaman. Kami memiliki 5 properti untuk mengontrol bagaimana ini terjadi.

Hentian halaman sebelum elemen.

Jika kita ingin sebuah elemen selalu berada di awal halaman, kita bisa menerapkan page break menggunakan aturan page-break-before.

Bagian ( page-break-before: selalu; )

Hentian halaman setelah elemen.

Aturan page-break-after memungkinkan kita untuk memaksa atau menonaktifkan page break setelah elemen.

H2 ( page-break-after: selalu; )

Hentian halaman dalam sebuah elemen

Properti ini berguna jika Anda perlu menghindari jeda halaman di dalam elemen.

Ul ( page-break-inside: hindari; )

Janda dan anak yatim (tali gantung)

Kadang-kadang Anda tidak memerlukan kontrol atas hentian halaman, tetapi kontrol atas berapa banyak baris yang akan ditampilkan di halaman saat ini dan berapa banyak di halaman berikutnya adalah penting. Misalnya, jika baris terakhir dari sebuah paragraf tidak sesuai dengan halaman saat ini, paragraf tersebut akan membungkus ke halaman berikutnya bersama dengan yang kedua dari belakang. Ini karena properti janda yang sesuai secara default adalah 2. Kita dapat mengubahnya.

P ( janda: 4; )

Jika kita mengalami sisi lain dari masalah ini dan kita hanya memiliki baris pertama paragraf pada halaman saat ini, maka seluruh paragraf akan dimulai pada halaman berikutnya. Properti yatim piatu bertanggung jawab untuk ini dan nilai defaultnya adalah 2.

P ( anak yatim : 3; )

Kode ini berarti bahwa setidaknya 3 baris harus muat pada halaman saat ini sehingga paragraf tidak terbungkus ke yang berikutnya.

Tidak semua properti dan nilai ini berfungsi di setiap browser, Anda harus memeriksa gaya cetak di browser yang berbeda.

6. Atur ulang gaya

Masuk akal untuk mengatur ulang beberapa gaya seperti background-color , box-shadow , dan warna untuk pencetakan.

*, *:before, *:after, *:first-letter, p:first-line, div:first-line, blockquote:first-line, li:first-line ( background: transparent !important; color: #000 !penting; bayangan kotak: tidak ada !penting; bayangan teks: tidak ada !penting; )

Gaya cetak adalah salah satu dari sedikit pengecualian di mana menggunakan kata kunci !important tidak masalah.

7. Menghapus konten opsional

Untuk menghindari pemborosan tinta, Anda harus menghapus item yang tidak perlu seperti tipografi, iklan, navigasi, dan sebagainya. dengan tampilan: tidak ada properti.

Anda pada dasarnya hanya dapat menampilkan konten utama dan menyembunyikan yang lainnya:

Isi > *:not(utama) ( tampilan: tidak ada; )

8. Mencetak Alamat Tautan

A:setelah ( isi: " (" attr(href) ")"; )

Tentu saja, semuanya akan ditampilkan dengan cara ini: tautan relatif, tautan absolut, jangkar, dan sebagainya. Opsi berikut akan bekerja lebih baik:

A:not():after ( konten: " (" attr(href) ")"; )

Terlihat gila, aku tahu. Cara kerja baris ini adalah dengan menampilkan nilai atribut href di sebelah tautan apa pun yang memilikinya jika dimulai dengan http tetapi tidak mengarah ke situs web saya.com kami.

9. Mencetak transkrip singkatan

Singkatan harus dibungkus dengan elemen dengan deskripsi di atribut judul. Masuk akal untuk mencetaknya.

Abbr:setelah ( isi: " (" attr(judul) ")"; )

10. Cetak latar belakang

Biasanya browser tidak mencetak warna latar belakang dan gambar latar kecuali Anda secara eksplisit menyuruhnya. Ada properti print-color-adjust non-standar yang memungkinkan Anda mengganti pengaturan default di beberapa browser.

Header ( -webkit-print-color-adjust: tepat; print-color-adjust: tepat; )

11. Pertanyaan Media

Jika Anda menulis kueri media seperti dalam contoh berikut, perhatikan bahwa gaya dalam kueri media ini tidak akan diterapkan saat dicetak.

@media screen dan (min-width: 48em) ( /* screen only */ )

Anda akan bertanya mengapa? Karena aturan CSS hanya berlaku jika kedua kondisi terpenuhi: min-width is 48em , media-type is screen . Jika kita menghilangkan kata kunci screen, maka media query hanya akan mempertimbangkan nilai min-width.

@media (lebar minimum: 48em) ( /* semua jenis media */ )

12. Pencetakan kartu

Versi Firefox dan Chrome saat ini mampu mencetak peta, tetapi Safari tidak. Beberapa layanan menyediakan peta statis yang dapat dicetak alih-alih yang asli.

Peta ( lebar: 400px; tinggi: 300px; background-image: url("http://maps.googleapis.com/maps/api/staticmap?center=Wien+Floridsdorf&zoom=13&scale=false&size=400x300&maptype=roadmap&format=png&visual_refresh=true "); -webkit-print-color-adjust: tepat; print-color-adjust: tepat; )

13. Kode QR

Tambahan 2: Gutenberg

Jika Anda mencari kerangka kerja, Anda mungkin menyukai Gutenberg, yang membuat pengoptimalan halaman sedikit lebih mudah.

Addon 3: Hartija

Ini adalah kerangka gaya cetak lain dari

Seringkali di situs Anda dapat menemukan versi halaman yang dapat dicetak. Banyak orang berpikir bahwa ini adalah sesuatu yang ada di dalam browser itu sendiri atau sangat mudah dilakukan. Faktanya, ini tidak benar sama sekali. Versi cetak adalah halaman normal yang kamu butuhkan sendiri melakukan.

Anda dapat melihat versi cetak artikel ini. Sebenarnya, apa yang harus ditampilkan di sana? Judul artikel, bagian, kategori, penulis, teks itu sendiri dan tanggal. Semua ini ditampilkan di halaman ini. Apakah Anda memerlukan menu, formulir pencarian, berbagai blok? Saya tidak berpikir itu sebabnya mereka tidak.

Pastikan juga lebar versi cetaknya adalah tidak melebihi 650px, jika tidak, browser dapat memotong ujungnya.

Jadi, kamu sudah mengerti itu versi cetak Anda perlu membuat sendiri, menampilkan dengan tepat apa yang dibutuhkan pengguna. Sekarang tentang bagaimana melakukannya.

Ada 2 pilihan: buat halaman terpisah dan buat lembar gaya terpisah. Opsi pertama, saya pikir, sudah jelas. Buat halaman lain dengan versi cetak dan di halaman utama Anda memberikan tautan ke versi cetak ini. Pengguna mengikutinya dan melalui "File"->"Cetak" dia akan mencetaknya.

Opsi kedua melibatkan pembuatan lembar gaya terpisah tempat Anda menyembunyikan semua blok yang tidak perlu (melalui tampilan: tidak ada;) dan atur dimensi yang sesuai untuk konten keluaran. Selanjutnya, file gaya seperti itu terhubung sebagai berikut:

Sekarang jika pengguna ingin mencetak halaman ini, itu tidak akan mencetak apa yang dilihatnya, tetapi apa yang tertulis di print.css. Faktanya, pengguna melihat halaman dalam satu cara, dan printer dengan cara yang sama sekali berbeda.

Itu caranya versi cetak sedang dibuat setiap halaman situs.

Tampaknya sulit untuk membuat halaman untuk dicetak? Kami hanya membuat dokumen yang sama dengan teks tetapi tanpa desain dan tautan apa pun dari halaman biasa. Tetapi mesin pencari telah memperkenalkan filter untuk konten duplikat, dan webmaster harus menyembunyikan halaman yang dapat dicetak dari pengindeksan. Selain itu, pengunjung situs juga sangat tidak nyaman, karena mereka harus terlebih dahulu membuka salinan halaman yang mereka butuhkan, di mana tidak ada elemen desain, dan kemudian mengklik tombol "Cetak".

Di sinilah CSS dapat berguna, yang tidak hanya akan mengurangi jumlah pekerjaan untuk webmaster dan memudahkan pengunjung untuk menggunakan situs, tetapi juga menghindari hukuman dari mesin telusur untuk konten duplikat.

Struktur halaman

Jadi, pertama-tama mari kita gunakan HTML untuk membuat struktur dokumen kita. Sebagai contoh, saya memutuskan untuk menggunakan tata letak tabel agar lebih mudah dipahami:

Judul artikel
Navigasi
Halaman Utama
Artikel
Kontak

Judul artikel

Halaman ini dapat dicetak. Hanya teks artikel yang akan dicetak.

Iklan Anda mungkin ada di sini

Seperti yang Anda lihat, kami memiliki tabel dengan tiga sel yang disusun secara horizontal. Semuanya seperti situs biasa: navigasi di kiri, konten di tengah, dan blok iklan atau berita di kanan. Setiap sel telah diberi id sendiri. Untuk sisi kiri adalah kolom kiri, untuk kanan adalah kolom kanan, dan untuk sel konten tengah adalah konten.

Menambahkan CSS

Sekarang, dengan menggunakan CSS, Anda perlu memberi tahu browser gaya mana yang harus digunakan untuk menampilkan elemen halaman di layar dan mana yang harus digunakan saat mencetak. Buat style.css dan tulis yang berikut di sana:

@media screen ( body ( background-color: #0B73BD; font-family: tahoma; color: #FFFFFF; ) tabel ( width: 600px; ) #leftcolumn ( width: 140px; vertical-align: top; ukuran font: 15px ; ) #rightcolumn ( width: 110px; vertical-align: top; font-size: 15px; ) #content ( background-color: #32AADB; padding: 5px; font-size: 15px; ) a ( color: #FFFF00; ) ) @media print ( body ( background-color: #FFFFFF; font-family: tahoma; color: #000000; ) #content ( background-color: #FFFFFF; padding: 5px; ukuran font: 15px; warna: # 000000; lebar: 600px; ) #leftcolumn ( tampilan: tidak ada; ) #rightcolumn ( tampilan: tidak ada; ) )

Blok pertama kode CSS menjelaskan bagaimana elemen halaman harus ditampilkan di browser. Blok diambil dalam kurung kurawal tambahan sebelum kami menambahkan layar @media. Ini memberi tahu browser bahwa gaya ini perlu diterapkan untuk tampilan:


Seperti inilah tampilan halaman saat dilihat di browser

Blok kedua menjelaskan tampilan elemen halaman yang sama dengan yang pertama, tetapi dalam kasus ini dalam bentuk dokumen yang akan terlihat saat dicetak dan ditunjukkan oleh parameter @media print. Karena kami hanya ingin konten yang berguna yang akan dicetak, kami menonaktifkan sel kiri (#kolom kiri) dan kanan (#kolom kanan) agar tidak ditampilkan dengan mengaturnya ke tampilan: tidak ada.


Ini adalah tampilan halaman situs versi cetak

File gaya terpisah

Tidak perlu menggabungkan semuanya dalam satu file gaya. Sebagai gantinya, Anda dapat menggunakan dua file gaya dan, saat menghubungkannya ke halaman situs, beri tahu browser file gaya mana yang akan digunakan saat mencetak dan yang mana untuk ditampilkan di layar. Yang pertama (untuk output layar) ditentukan oleh parameter media="screen", dan yang kedua akan digunakan untuk mencetak dan ditentukan oleh parameter media="print":

Gaya untuk pencetakan harus dijelaskan setelah semuanya, jika tidak Opera akan mencetak blok konten bersama dengan latar belakang warna yang dimaksudkan untuk output ke browser, dan bukan warna putih yang kami pilih untuk dicetak.

Juga, saat mencetak, kami secara ketat mengurangi lebar blok konten menjadi 600px, karena pada lebar 100%, printer "memotong" potongan kecil teks di sisi kanan halaman. Perhatikan juga fakta bahwa saat mencetak dari Opera, lekukan di sepanjang tepi lembaran sedikit lebih kecil daripada di Internet Explorer dan garis teks pada selembar kertas lebih lebar.

Sekarang Anda tidak perlu lagi membuat halaman tambahan untuk dicetak. Anda dapat memberi tahu pengguna tentang kemungkinan mencetak halaman, misalnya, menggunakan tautan dengan teks "cetak", ketika diklik, tooltip akan ditampilkan dengan pesan tentang kemampuan untuk langsung mencetak halaman saat ini tanpa desain.

Dilarang menyalin artikel.