Saya ingin peregangan dan skala gambar latar belakang saya tergantung pada ukuran viewport browser.
Saya telah melihat beberapa pertanyaan tentang Stack Overflow yang melakukan pekerjaan, seperti Peregangan dan skala latar belakang CSS misalnya. Ini berfungsi dengan baik, tetapi saya ingin menempatkan gambar menggunakan background
, bukan dengan img
tag.
Dalam satu img
tag ditempatkan, dan kemudian dengan CSS kami menghargai img
tag.
width:100%; height:100%;
Ini berfungsi, tetapi pertanyaan itu agak lama, dan menyatakan bahwa dalam CSS 3 mengubah ukuran gambar latar belakang akan bekerja dengan cukup baik. Saya sudah mencoba contoh ini yang pertama , tetapi tidak berhasil bagi saya.
Apakah ada metode yang baik untuk melakukannya dengan background-image
deklarasi?
css
background
Fábio Antunes
sumber
sumber
Jawaban:
CSS3 memiliki atribut kecil yang disebut
background-size:cover
.Ini skala gambar sehingga area latar belakang sepenuhnya ditutupi oleh gambar latar belakang sambil mempertahankan rasio aspek. Seluruh area akan ditanggung. Namun, bagian dari gambar mungkin tidak terlihat jika lebar / tinggi gambar yang diubah ukurannya terlalu besar.
sumber
background-size: 100vw 100vh;
lakukan triknya dengan baik.background-size: cover; -ms-background-size: cover; -o-background-size: cover; -moz-background-size: cover; -webkit-background-size: cover;
background-size: 100% auto;
stackoverflow.com/questions/41025630/…Anda dapat menggunakan properti CSS3 untuk melakukannya dengan cukup baik. Ini mengubah ukuran untuk rasio sehingga tidak ada distorsi gambar (meskipun itu gambar kecil kelas atas). Perhatikan saja, ini belum diterapkan di semua browser.
sumber
background-image
dan sertakan properti di atas. Seperti yang disebutkan, dukungan browser belum baik dan ada versi khusus browser yaitu ini.-webkit-background-size
dll. Lihat Modul W3C CSS3: ukuran latar belakang dan css3.info: ukuran latar belakangauto
rasio aspek.Menggunakan kodenya saya sebutkan ...
HTML
CSS
Itu menghasilkan efek yang diinginkan: hanya konten yang akan menggulir, bukan latar belakang.
Gambar latar belakang diubah ukurannya menjadi viewport browser untuk ukuran layar apa pun. Ketika konten tidak sesuai dengan viewport browser, dan pengguna perlu menggulir halaman, gambar latar tetap di viewport sementara konten bergulir.
Dengan CSS 3 sepertinya ini akan jauh lebih mudah.
sumber
background : url("example.png");
) dan kemudian menggunakan atribut css dibackground-size:100%;
bawahnya untuk mudah-mudahan skala gambar ke lebar layar. Ini tidak akan berhasil, kan? Jika Anda ingin meletakkan gambar latar belakang untuk tubuh maka atribut gambar harus ditambahkan ke tag tubuh seperti<body background="example.png">
. Kemudian gunakan cssbackground-size:100%;
untuk skala itu.CSS:
sumber
html, body {...}
bukanbody {...}
.meregangkan latar belakang untuk mengisi seluruh elemen pada kedua sumbu.
sumber
Bagian CSS berikut harus meregangkan gambar dengan semua browser.
Saya melakukan ini secara dinamis untuk setiap halaman. Karena itu saya menggunakan PHP untuk menghasilkan tag HTML sendiri untuk setiap halaman. Semua gambar ada di folder 'gambar' dan akhiri dengan 'Bg.jpg'.
Jika Anda hanya memiliki satu gambar latar belakang untuk semua halaman maka Anda dapat menghapus
$pic
variabel, menghapus melarikan diri garis miring, menyesuaikan jalur dan menempatkan kode ini dalam file CSS Anda.Ini diuji dengan Internet Explorer 9, Chrome 21, dan Firefox 14.
sumber
-webkit-background-size
,-moz-background-size
dan sebagainya. Lihat developer.mozilla.org/en-US/docs/CSS/… Atau Anda pergi untuk memasukkannya di masa depan-bukti di properti singkat sepertibackground: url(img/bg-home.jpg) no-repeat center center / cover fixed;
Anda sebenarnya dapat mencapai efek yang sama seperti gambar latar belakang dengan tag img. Anda hanya perlu mengatur z-index lebih rendah dari yang lainnya, mengatur posisi: absolut dan menggunakan latar belakang transparan untuk setiap kotak di latar depan.
sumber
Gunakan CSS ini:
sumber
Ini dijelaskan oleh trik CSS: Gambar Latar Belakang Halaman Penuh Sempurna
Demo: https://css-tricks.com/examples/FullPageBackgroundImage/progressive.php
Kode:
sumber
Anda dapat menambahkan kelas ini ke file CSS Anda.
Ia bekerja di:
background-size
, tetapi bukan kata kunci)sumber
Untuk mengatur skala gambar Anda secara tepat berdasarkan ukuran wadah, gunakan yang berikut ini:
sumber
Saya menggunakan ini, dan berfungsi dengan semua browser:
sumber
Terima kasih!
Tapi kemudian itu tidak bekerja untuk Google Chrome dan Safari browser (peregangan bekerja, tapi hight gambar hanya 2 mm!) , Sampai seseorang mengatakan kepada saya apa yang kurang:
Jadi ubah itu untuk
height:100%;
baris Anda , berikan:Tepat sebelum kode yang baru ditambahkan saya memilikinya di tema Drupal Tendu saya
style.css
:Maka saya harus membuat blok baru di dalam Drupal dengan gambar sambil menambahkan
class=stretch
:Hanya menyalin gambar dengan editor di blok Drupal tidak berfungsi; kita harus mengubah editor menjadi teks yang tidak diformat.
sumber
Saya setuju dengan gambar dalam div absolut dengan lebar dan tinggi 100%. Pastikan Anda mengatur lebar dan tinggi 100% untuk tubuh di CSS dan mengatur margin dan bantalan ke nol. Masalah lain yang Anda akan temukan dengan metode ini adalah bahwa ketika memilih teks, area pemilihan kadang-kadang dapat mencakup gambar latar belakang, yang memiliki efek yang disayangkan membuat halaman penuh memiliki keadaan yang dipilih. Anda bisa menyelesaikan ini dengan menggunakan
user-select:none
aturan CSS, seperti:Sekali lagi, Internet Explorer adalah penjahat di sini, karena tidak mengenali opsi pilih pengguna - bahkan pratinjau Internet Explorer 10 tidak mendukungnya, jadi Anda memiliki opsi untuk menggunakan JavaScript untuk mencegah pemilihan gambar latar belakang (misalnya, http : //www.felgall.com/jstip35.htm ) atau menggunakan metode latar belakang CSS 3 .
Juga, untuk SEO saya akan meletakkan gambar latar belakang di bagian bawah halaman, tetapi jika gambar latar belakang terlalu lama untuk memuat (yaitu, dengan latar belakang putih awalnya), Anda bisa pindah ke bagian atas halaman.
sumber
Saya ingin memusatkan dan skala gambar latar belakang, tanpa merentangkannya ke seluruh halaman, dan saya ingin rasio aspek dipertahankan. Ini berhasil bagi saya, berkat variasi yang disarankan dalam jawaban lain:
GAMBAR INLINE: ------------------------
CSS ----------------------------------
sumber
Saya menggunakan kombinasi properti CSS background-X untuk mencapai gambar latar scaling yang ideal.
Ini membuat latar belakang selalu menutupi seluruh jendela browser dan tetap terpusat saat penskalaan.
sumber
Gunakan plugin Backstretch . Satu bahkan dapat memiliki beberapa slide gambar. Ini juga berfungsi dalam wadah. Dengan cara ini misalnya seseorang hanya dapat memiliki sebagian dari latar belakang ditutupi dengan gambar latar belakang.
Karena bahkan saya bisa membuatnya berfungsi membuktikannya menjadi plugin yang mudah digunakan :).
sumber
Jika Anda ingin konten terpusat secara horizontal, gunakan kombinasi seperti ini:
Ini akan terlihat cantik.
sumber
Gunakan CSS ini:
background-size: 100% 100%
sumber
Anda dapat menggunakan
border-image : yourimage
properti untuk memperbesar gambar hingga ke perbatasan. Bahkan jika Anda memberikan gambar latar belakang, gambar perbatasan akan digambar di atasnya.The
border-image
properti sangat berguna jika style sheet diimplementasikan di suatu tempat yang tidak mendukung CSS 3. Jika Anda menggunakan Google Chrome atau Firefox, maka saya sarankanbackground-size:cover
properti itu sendiri.sumber
Apakah Anda ingin mencapai ini hanya dengan menggunakan satu gambar? Karena Anda sebenarnya dapat membuat sedikit mirip dengan latar belakang peregangan menggunakan dua gambar. Gambar PNG misalnya.
Saya pernah melakukan ini sebelumnya, dan itu tidak sulit. Selain itu, saya pikir peregangan hanya akan merusak kualitas latar belakang. Dan jika Anda menambahkan gambar besar itu akan memperlambat komputer dan browser yang lambat.
sumber
Berikut ini bekerja untuk saya.
yang bekerja untuk menutupi seluruh latar belakang pada dimensi yang berbeda
sumber