Apakah ada cara untuk memposisikan gambar latar sejumlah piksel dari kanan elemennya?
Misalnya, untuk memposisikan sesuatu sejumlah piksel (katakanlah, 10) dari kiri , ini adalah bagaimana saya melakukannya:
#myElement {
background-position: 10px 0;
}
background-position: -10px 0;
? Hanya memeriksa :)Jawaban:
Saya menemukan fitur CSS3 ini bermanfaat:
Sejauh yang saya tahu ini tidak didukung di IE8. Di Chrome / Firefox terbaru berfungsi dengan baik.
Lihat Dapatkah saya menggunakan detail tentang browser yang didukung.
Sumber yang digunakan: http://tanalin.com/en/blog/2011/09/css3-background-position/
Perbarui :
Fitur ini sekarang didukung di semua browser utama, termasuk browser seluler.
sumber
right
left
top
bottom
. Misalnya, yang berikut ini tidak akan diterjemahkan:background-position: right 10px 10px
tetapi harus ditulis sebagaibackground-position: right 10px top 10px
Apakah ada cara untuk memposisikan gambar latar sejumlah piksel dari kanan elemennya?
Nggak.
Solusi populer termasuk
margin-right
pada elemen sebagai gantinyatop right
sumber
Solusi termudah adalah menggunakan persentase. Ini bukan jawaban yang Anda cari sejak Anda meminta ketepatan piksel, tetapi jika Anda hanya perlu sesuatu untuk memiliki sedikit bantalan antara tepi kanan dan gambar, memberikan sesuatu posisi 99% biasanya bekerja cukup baik.
Kode:
sumber
CSS3 telah memodifikasi spesifikasi
background-position
sehingga akan bekerja dengan titik asal yang berbeda. Sayangnya, saya tidak dapat menemukan bukti bahwa itu sudah diterapkan di browser utama.http://www.w3.org/TR/css3-background/#the-background-position Lihat contoh 12.
sumber
Version 21.0.1180.89
Seperti yang diusulkan di sini , ini adalah solusi peramban yang cantik yang bekerja dengan sempurna:
Saya menggunakannya karena fitur CSS3 untuk menetapkan offset yang diajukan dalam jawaban yang ditandai sebagai penyelesaian pertanyaan belum didukung di browser dengan baik. Misalnya
sumber
Jawaban yang paling tepat adalah sintaks empat nilai baru untuk posisi latar belakang, tetapi sampai semua browser mendukungnya, pendekatan terbaik Anda adalah kombinasi dari respons sebelumnya dalam urutan berikut:
sumber
Trik sederhana tapi kotor adalah dengan hanya menambahkan offset yang Anda inginkan ke gambar yang Anda gunakan sebagai latar belakang. itu tidak bisa dipertahankan, tetapi itu menyelesaikan pekerjaan.
sumber
Ini akan bekerja paling baik besar peramban modern ... selain dari IE (dukungan peramban) . Meskipun halaman itu mencantumkan> = IE9 sebagai didukung, pengujian saya tidak setuju dengan itu.
Anda dapat menggunakan properti calc () css3 seperti itu;
Bagi saya ini adalah cara terbersih dan paling logis untuk mencapai margin ke kanan. Saya juga menggunakan fallback menggunakan
border-right: 10px solid transparent;
untuk IE.sumber
background-position: 92% 8px; background-position: calc(100% - 12px) 8px;
right 10px center
sintaks memiliki dukungan lebih luas di browser._
dengan-
Ok Jika saya mengerti apa yang Anda minta Anda akan lakukan ini;
Anda memiliki wadah DIV Anda dipanggil
#main-container
dan.my-element
itu ada di dalamnya. Gunakan ini untuk membantu Anda memulai;Ngomong-ngomong, lebih baik berlatih menggunakan kelas jika Anda mereferensikan elemen level yang lebih rendah dalam sebuah halaman (saya berasumsi Anda karenanya mengubah nama saya di atas.
sumber
Spesifikasi CSS3 yang memungkinkan asal yang berbeda untuk posisi latar belakang sekarang didukung di Firefox 14 tetapi masih belum di Chrome 21 (tampaknya IE9 mendukungnya, tetapi saya belum mengujinya sendiri)
Selain masalah Chrome yang dirujuk @MattyF, ada ringkasan yang lebih ringkas di sini: http://code.google.com/p/chromium/issues/detail?id=95085
sumber
Jika Anda memiliki elemen proporsional, Anda dapat menggunakan:
Dalam contoh ini,
.valid
akan menjadi kelas dengan gambar dan.half
akan menjadi baris dengan ukuran setengah dari yang standar.Kotor, tetapi berfungsi sebagai pesona dan itu cukup mudah dikelola.
sumber
Jika Anda ingin menggunakan ini untuk menambahkan panah / ikon lainnya ke tombol misalnya maka Anda dapat menggunakan css pseudo-elements?
Jika ini benar-benar gambar latar belakang untuk seluruh tombol, saya cenderung memasukkan spasi ke dalam gambar, dan cukup gunakan
Tetapi jika saya harus menambahkan misalnya panah yang dirancang ke tombol, saya cenderung memiliki html ini:
Dan cenderung melakukan hal berikut dengan CSS:
Dengan menggunakan: setelah pemilih, saya menambahkan elemen menggunakan CSS hanya untuk memuat ikon kecil ini. Anda bisa melakukan hal yang sama hanya dengan menambahkan rentang atau
<i>
elemen di dalam elemen-a. Tapi saya pikir ini adalah cara yang lebih bersih untuk menambahkan ikon ke tombol dan didukung lintas-browser.Anda dapat memeriksa biola di sini: http://codepen.io/anon/pen/PNzYzZ
sumber
content: '';
daripadacontent:0;
tetapi ini adalah solusi yang berguna bagi sayasumber
gunakan tengah tepat sebagai posisi kemudian tambahkan perbatasan transparan untuk mengimbanginya?
sumber
Jika Anda memiliki elemen lebar tetap dan mengetahui lebar gambar latar belakang Anda, Anda bisa mengatur posisi latar belakang menjadi: lebar elemen - lebar gambar - jarak yang Anda inginkan di sebelah kanan.
Misalnya: dengan elemen 100px-lebar dan gambar 300px-lebar, untuk mendapatkan celah 10px di sebelah kanan, Anda atur ke 100-300-10 = -210px:
Dan Anda mendapatkan 80 piksel paling kanan dari gambar Anda di sebelah kiri elemen Anda, dan celah 20px di sebelah kanan.
Saya tahu ini kedengarannya bodoh tapi kadang-kadang menghemat waktu ... Saya menggunakan sebanyak itu secara vertikal (celah di bawah) untuk tautan navigasi dengan teks di bawah gambar.
Tidak yakin itu berlaku untuk kasus Anda.
sumber
masalah saya adalah saya membutuhkan gambar latar belakang untuk tetap jarak yang sama dari perbatasan kanan ketika jendela diubah ukurannya yaitu untuk tablet / ponsel dll. Perbaikan saya adalah menggunakan percenatge seperti:
dan itu menempel di tempatnya.
sumber
Iya! baik untuk memposisikan gambar latar belakang seolah-olah 0px dari sisi kanan browser, bukan dari kiri - saya menggunakan:
sumber