Misalkan saya ingin menghias tautan ke jenis file tertentu menggunakan gambar. Saya dapat mendeklarasikan tautan saya sebagai
<a href='foo.pdf' class='pdflink'>A File!</a>
kemudian punya CSS like
.pdflink:after { content: url('/images/pdf.png') }
Sekarang, ini berfungsi dengan baik, kecuali jika pdf.png
bukan ukuran yang tepat untuk teks tautan saya.
Saya ingin dapat memberitahu browser untuk skala :after
gambar, tetapi saya tidak bisa seumur hidup saya menemukan sintaks yang tepat. Atau apakah ini seperti gambar latar belakang, di mana pengubahan ukuran saja tidak dimungkinkan?
ETA: Saya condong ke arah a) mengubah ukuran gambar sumber menjadi ukuran "benar", sisi server dan / atau b) mengubah markup untuk sekadar memasok inline tag IMG. Saya mencoba menghindari kedua hal itu tetapi kedengarannya mereka akan lebih kompatibel daripada mencoba melakukan hal-hal murni dengan CSS. Jawaban untuk pertanyaan asli saya tampaknya menjadi "Anda dapat mengurutkan dari melakukannya, kadang-kadang".
sumber
Jawaban:
Menyesuaikan
background-size
diizinkan. Anda masih harus menentukan lebar dan tinggi blok.Lihat Tabel Kompatibilitas lengkap di MDN .
sumber
:after
sama sekali. Itu tidak didukung di bawah IE8.width: 10px; height: 20px;
untuk melihat gambar.background-image
properti spesifik , yang sederhanabackground
tidak akan berfungsi.:before
) saya juga perluposition: absolute
, danleft: -10px
.Perhatikan bahwa
:after
elemen pseudo adalah kotak, yang pada gilirannya berisi gambar yang dihasilkan. Tidak ada cara untuk menata gambar, tetapi Anda bisa menata kotak.Berikut ini hanyalah sebuah ide, dan solusi di atas lebih praktis.
http://jsfiddle.net/Nwupm/
Kelemahan: Anda perlu tahu dimensi intrinsik dari gambar, dan ia meninggalkan Anda dengan spasi putih, yang saya tidak bisa hilangkan dari ATM.
sumber
position: absolute
untuk mendapatkantransform: scale(0.5)
untuk benar-benar bekerja. Saya juga harus memasukkanposition: relative
elemen "induk" (pemilik:after
pseudo) untuk kewarasan. Juga, saya harus menambahkantranslate(-16px, -16px)
transformasi saya ke posisi ikon 16x16 dengan benar. Iniposition: absolute
juga memiliki manfaat menghilangkan masalah spasi putih.Karena jawaban saya yang lain jelas tidak dipahami dengan baik, inilah upaya kedua:
Ada dua pendekatan untuk menjawab pertanyaan itu.
Praktis (cukup tunjukkan gambarnya!)
Lupakan
:after
pemilih-semu, dan pergi untuk sesuatu sepertiTeoretis
Pertanyaannya adalah: Dapatkah Anda menata konten yang dihasilkan ? Jawabannya adalah: Tidak, Anda tidak bisa. Sudah ada diskusi panjang di milis W3C tentang masalah ini, tetapi sejauh ini tidak ada solusi.
Konten yang dihasilkan dirender ke dalam kotak yang dibuat, dan Anda bisa menata kotak itu, tetapi bukan konten seperti itu . Browser yang berbeda menunjukkan perilaku yang sangat berbeda
(dari http://lists.w3.org/Archives/Public/www-style/2011Nov/0451.html )
Demikian pula, browser menunjukkan hasil yang sangat berbeda pada hal-hal seperti http://jsfiddle.net/Nwupm/1/ , di mana lebih dari satu elemen dihasilkan. Perlu diingat bahwa CSS3 masih dalam tahap pengembangan awal, dan masalah ini belum diselesaikan.
sumber
Anda harus menggunakan latar belakang alih-alih gambar.
sumber
diplay: block;
tidak memiliki efek apa punpositionin juga bekerja sangat aneh sesuai dengan fondasi frontend, jadi berhati-hatilah
sumber
Berikut ini adalah solusi lain (yang berfungsi): sesuaikan ukuran gambar Anda dengan ukuran yang Anda inginkan :)
Anda perlu pdf.png menjadi 20px * 10px agar ini berfungsi. 20px / 10px dalam css ada di sini untuk memberikan ukuran blok sehingga elemen-elemen yang datang setelah blok tidak semuanya kacau dengan gambar
Jangan lupa menyimpan salinan gambar mentah dalam ukuran aslinya
sumber
sumber
Anda bisa menggunakan
zoom
properti. Periksa jsfiddle inisumber
Anda dapat mengubah tinggi atau lebar elemen Sebelum atau Setelah seperti ini:
sumber
Saya menggunakan lebar kendali ukuran font ini
sumber
Saat ini dengan flexbox Anda dapat sangat menyederhanakan kode Anda dan hanya menyesuaikan 1 parameter sesuai kebutuhan:
Sekarang Anda hanya dapat menyesuaikan lebar elemen dan ketinggian akan secara otomatis menyesuaikan, menambah / mengurangi lebar hingga ketinggian elemen berada pada angka yang Anda butuhkan.
sumber
url(//placeimg.com/800/200/arch)
sumber