Jika Anda ingin membuat gambar lebih besar, Anda harus mengedit gambar itu sendiri di editor gambar.
Jika Anda menggunakan tag img, Anda dapat mengubah ukurannya, tetapi itu tidak akan memberi Anda hasil yang diinginkan jika Anda membutuhkan gambar sebagai latar belakang untuk beberapa konten lain (dan itu tidak akan terulang seperti yang Anda inginkan) ...
CSS3 melepaskan kekuatan
Ini dimungkinkan untuk dilakukan di CSS3 dengan background-size.
Semua browser modern mendukung ini, jadi kecuali Anda perlu mendukung browser lama, ini adalah cara untuk melakukannya. Browser yang didukung:
Mozilla Firefox 4.0+ (Gecko 2.0+), Microsoft Internet Explorer 9.0+, Opera 10.0+, Safari 4.1+ (webkit 532) dan Chrome 3.0+.
.stretch{/* Will stretch to specified width/height */background-size:200px150px;}.stretch-content{/* Will stretch to width/height of element */background-size:100%100%;}.resize-width{/* width: 150px, height: auto to retain aspect ratio */background-size:150px Auto;}.resize-height{/* height: 150px, width: auto to retain aspect ratio */background-size: Auto 150px;}.resize-fill-and-clip{/* Resize to fill and retain aspect ratio.
Will cause clipping if aspect ratio of box is different from image. */background-size: cover;}.resize-best-fit{/* Resize to best fit and retain aspect ratio.
Will cause gap if aspect ratio of box is different from image. */background-size: contain;}
Secara khusus, saya suka coverdan containnilai-nilai yang memberi kita kekuatan kontrol baru yang tidak kita miliki sebelumnya.
Bulat
Anda juga dapat menggunakan background-size: roundyang memiliki arti dalam kombinasi dengan pengulangan:
.resize-best-fit-in-repeat{/* Resize to best fit in a whole number of times in x-direction */background-size: round auto;/* Height: auto is to keep aspect ratio */background-repeat: repeat;}
Ini akan menyesuaikan lebar gambar sehingga cocok beberapa kali di area pemosisian latar belakang.
Catatan tambahan
Jika ukuran yang Anda butuhkan adalah ukuran piksel statis, masih pintar untuk mengubah ukuran gambar yang sebenarnya. Ini untuk meningkatkan kualitas ukuran (mengingat bahwa perangkat lunak gambar Anda melakukan pekerjaan yang lebih baik daripada browser), dan untuk menghemat bandwidth jika gambar asli lebih besar dari apa yang ditampilkan.
Perhatikan bahwa ada juga pertanyaan tentang retina display di iPad dan iPhone dan mungkin perangkat resolusi tinggi lainnya yang akan datang. Ini berarti mungkin perlu mengubah ukuran gambar yang lebih besar menggunakan CSS, dan menggunakan beberapa file CSS dan trik lain untuk menyajikan gambar tertentu. Intro yang bagus untuk itu di sini: webmonkey.com/2012/03/…
Leo
Ini adalah solusi terburuk untuk saat ini, karena tidak setiap toko e-commerce akan mengubah ukuran gambar seperti yang disarankan. Pada tahun 2009, kemungkinan besar itu dekat dengan opsi terbaik, sekarang cukup gunakan atribut ukuran seperti di bawah ini.
ShaunOReilly
332
Hanya CSS 3 yang mendukung itu,
background-size:200px50px;
Tapi saya akan mengedit gambar itu sendiri, sehingga pengguna perlu memuat lebih sedikit, dan mungkin terlihat lebih baik daripada gambar menyusut tanpa antialiasing.
ukuran latar belakang: 100%; posisi latar belakang: tengah; - ini bekerja di IE6 yang berjalan di Mesin Virtual saya di XP Home.
InnateDev
7
IE 6,7,8 bukan 'browser terbanyak'.
Mahmoodvcs
1
Bahkan pada 2013 - sementara komentar "IE6,7,8 bukan 'sebagian besar peramban'" mungkin sebagian benar dalam hal IE6; Sayangnya IE7 dan IE8 masih memiliki pangsa pasar yang cukup besar. Cara terbaik yang saya temukan untuk melakukan ini adalah menggunakan Javascript dalam kombinasi dengan modernizr (atau cara lain untuk menandai 'OLDIE').
AndrewPK
19
Tidak mungkin . Latar belakang akan selalu sebesar mungkin, tetapi Anda dapat menghentikannya agar tidak terulang kembali background-repeat.
background-repeat:no-repeat;
Kedua, latar belakang tidak masuk ke area margin kotak, jadi jika Anda ingin latar belakang hanya pada isi kotak yang sebenarnya, Anda dapat menggunakan margin bukannya padding.
Ketiga, Anda dapat mengontrol di mana gambar latar belakang dimulai. Secara default itu adalah sudut kiri atas kotak, tetapi Anda dapat mengontrolnya dengan background-position, seperti ini:
background-position: center top;
atau mungkin
background-position:20px-14px;
Penentuan posisi negatif banyak digunakan dengan sprite CSS .
Tidak, tidak sebesar yang saya bisa. Ukurannya selalu sama, tapi saya harus melakukannya lebih besar.
Johan
Yah, itu tidak mungkin. Mungkin ada opsi untuk melakukan itu di versi CSS masa depan, tapi itu masih jauh.
mikl
Jawaban ini salah. CSS3 memiliki properti ukuran latar belakang yang didukung di IE9 +.
Downpour046
3
Lihatlah cap waktu. Pada 2009, ukuran latar hanyalah binar di mata WebKit. Silakan memperbaruinya, jika Anda mau, tetapi sudah ada banyak jawaban lain yang menjelaskan ukuran latar belakang.
mikl
12
Tidak terlalu sulit, jika Anda tidak takut akan sedikit lebih dalam :)
Ada satu argumen yang terlupakan :
background-size: contain;
Ini tidak akan meregang background-imageseperti yang akan Anda lakukan cover. Itu akan meregang sampai sisi yang lebih panjang mencapai lebar atau tinggi wadah luar dan karenanya menjaga gambar.
Sunting: Ada juga -webkit-background-sizedan -moz-background-size.
Properti ukuran latar belakang didukung di IE9 +, Firefox 4+, Opera, Chrome, dan Safari 5+.
Untuk mendukung jawaban yang diberikan @tetra, saya ingin menunjukkan bahwa jika gambar adalah SVG, maka mengubah ukuran gambar yang sebenarnya tidak diperlukan.
Karena file SVG hanya XML, Anda dapat menentukan ukuran apa pun yang Anda inginkan muncul dalam XML.
Namun, jika Anda menggunakan gambar SVG yang sama di tempat yang berbeda dan membutuhkannya dengan ukuran yang berbeda, menggunakan background-sizeitu sangat membantu. File SVG secara inheren lebih kecil daripada gambar raster dan mengubah ukuran dengan cepat dengan CSS bisa sangat membantu tanpa biaya kinerja yang saya ketahui, dan tentu saja sedikit atau tidak ada kehilangan kualitas.
body {
background-image: url(images/bg-body.png);
background-size:100%;/* size the background image at 100% like any responsive img tag */
background-position: top center;
background-repeat:no-repeat;}
Ini akan ukuran gambar latar belakang hingga 100% dari lebar elemen tubuh dan kemudian akan kembali ukuran latar sesuai dengan elemen tubuh kembali ukuran untuk resolusi yang lebih kecil.
put the below code in the body of you css file
background-image: URL('../images/wave-green-plain-colour.jpg');-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;
background-size: cover;
width:100px;
Saya menggunakan gambar latar belakang untuk tombol, tetapi hanya menampilkan gambar dengan ukuran yang sama dengan teks, bahkan jika saya mengatur lebar dan tinggi. Sebagai gantinya, saya menulis teks saya dengan karakter (spasi yang tidak putus). Saya menampar sebanyak yang diperlukan, pada dasarnya, sampai semua latar belakang tombol muncul. Jadi saya mungkin punya kode seperti ini:
Cara lain adalah dengan mengatur ukuran tautan ke ukuran gambar latar belakang. Dalam style sheet, (di bawah # v2menu-home dalam contoh di atas) gunakan tampilan: blok dan atur tinggi dan lebar di sana. Itu benar-benar berfungsi. Tidak perlu untuk karakter spasi yang tidak melanggar itu.
Martin Thompson
0
Misalnya:
Gambar latar akan selalu sesuai dengan ukuran wadah (lebar 100% dan tinggi 100px).
CSS lintas-browser:
Jawaban:
CSS2
Jika Anda ingin membuat gambar lebih besar, Anda harus mengedit gambar itu sendiri di editor gambar.
Jika Anda menggunakan tag img, Anda dapat mengubah ukurannya, tetapi itu tidak akan memberi Anda hasil yang diinginkan jika Anda membutuhkan gambar sebagai latar belakang untuk beberapa konten lain (dan itu tidak akan terulang seperti yang Anda inginkan) ...
CSS3 melepaskan kekuatan
Ini dimungkinkan untuk dilakukan di CSS3 dengan
background-size
.Semua browser modern mendukung ini, jadi kecuali Anda perlu mendukung browser lama, ini adalah cara untuk melakukannya.
Browser yang didukung:
Mozilla Firefox 4.0+ (Gecko 2.0+), Microsoft Internet Explorer 9.0+, Opera 10.0+, Safari 4.1+ (webkit 532) dan Chrome 3.0+.
Secara khusus, saya suka
cover
dancontain
nilai-nilai yang memberi kita kekuatan kontrol baru yang tidak kita miliki sebelumnya.Bulat
Anda juga dapat menggunakan
background-size: round
yang memiliki arti dalam kombinasi dengan pengulangan:Ini akan menyesuaikan lebar gambar sehingga cocok beberapa kali di area pemosisian latar belakang.
Catatan tambahan
Jika ukuran yang Anda butuhkan adalah ukuran piksel statis, masih pintar untuk mengubah ukuran gambar yang sebenarnya. Ini untuk meningkatkan kualitas ukuran (mengingat bahwa perangkat lunak gambar Anda melakukan pekerjaan yang lebih baik daripada browser), dan untuk menghemat bandwidth jika gambar asli lebih besar dari apa yang ditampilkan.
sumber
Hanya CSS 3 yang mendukung itu,
Tapi saya akan mengedit gambar itu sendiri, sehingga pengguna perlu memuat lebih sedikit, dan mungkin terlihat lebih baik daripada gambar menyusut tanpa antialiasing.
sumber
background: url('resized_image.png')\9;
untuk IE lt 9Jika pengguna Anda hanya menggunakan Opera 9.5+, Safari 3+, Internet Explorer 9+ dan Firefox 3.6+ maka jawabannya adalah ya. Kalau tidak, tidak.
The background-size properti merupakan bagian dari CSS 3, tapi itu tidak akan bekerja pada kebanyakan browser.
Untuk keperluan Anda, buat gambar yang sebenarnya lebih besar.
sumber
Tidak mungkin . Latar belakang akan selalu sebesar mungkin, tetapi Anda dapat menghentikannya agar tidak terulang kembali
background-repeat
.Kedua, latar belakang tidak masuk ke area margin kotak, jadi jika Anda ingin latar belakang hanya pada isi kotak yang sebenarnya, Anda dapat menggunakan margin bukannya padding.
Ketiga, Anda dapat mengontrol di mana gambar latar belakang dimulai. Secara default itu adalah sudut kiri atas kotak, tetapi Anda dapat mengontrolnya dengan
background-position
, seperti ini:atau mungkin
Penentuan posisi negatif banyak digunakan dengan sprite CSS .
sumber
Tidak terlalu sulit, jika Anda tidak takut akan sedikit lebih dalam :)
Ada satu argumen yang terlupakan :
Ini tidak akan meregang
background-image
seperti yang akan Anda lakukancover
. Itu akan meregang sampai sisi yang lebih panjang mencapai lebar atau tinggi wadah luar dan karenanya menjaga gambar.Sunting: Ada juga
-webkit-background-size
dan-moz-background-size
.- Sumber: Sekolah W3
sumber
Untuk mendukung jawaban yang diberikan @tetra, saya ingin menunjukkan bahwa jika gambar adalah SVG, maka mengubah ukuran gambar yang sebenarnya tidak diperlukan.
Karena file SVG hanya XML, Anda dapat menentukan ukuran apa pun yang Anda inginkan muncul dalam XML.
Namun, jika Anda menggunakan gambar SVG yang sama di tempat yang berbeda dan membutuhkannya dengan ukuran yang berbeda, menggunakan
background-size
itu sangat membantu. File SVG secara inheren lebih kecil daripada gambar raster dan mengubah ukuran dengan cepat dengan CSS bisa sangat membantu tanpa biaya kinerja yang saya ketahui, dan tentu saja sedikit atau tidak ada kehilangan kualitas.Ini adalah contoh cepat:
(Catatan: ini berfungsi untuk saya di OS X 10.7 dengan Firefox 8, Safari 5.1, dan Chrome 16.0.912.63)
sumber
background-size: 200px 50px ubah menjadi 100% 100% dan akan disesuaikan dengan kebutuhan tag konten seperti ul li atau div ... mencobanya
sumber
Anda benar-benar bisa menggunakan CSS3:
Ini akan ukuran gambar latar belakang hingga 100% dari lebar elemen tubuh dan kemudian akan kembali ukuran latar sesuai dengan elemen tubuh kembali ukuran untuk resolusi yang lebih kecil.
Berikut adalah contohnya: http://www.sccc.premiumdw.com/examples/resize-background-images-with-css/
sumber
Hanya saja div bersarang agar cross browser kompatibel
sumber
Anda dapat menggunakan dua
<div>
elemen:Salah satunya adalah sebuah wadah (ini adalah wadah yang awalnya Anda inginkan untuk menampilkan gambar latar belakang).
Yang kedua terkandung di dalamnya. Anda mengatur ukurannya ke ukuran gambar latar belakang (atau ukuran yang ingin Anda tampilkan).
Div yang terkandung kemudian diatur untuk diposisikan
absolute
. Dengan cara ini tidak mengganggu aliran normal item dalam div yang berisi.Ini memungkinkan Anda untuk menggunakan gambar sprite secara efisien.
sumber
Anda tidak dapat mengatur ukuran gambar latar belakang Anda dengan versi CSS saat ini (2.1).
Anda hanya dapat mengatur:
position
,fix
,image-url
,repeat-mode
, dancolor
.sumber
sumber
Anda telah menulis
tetapi Anda hanya akan melihat latar belakang tergantung pada ukuran wadah.
jika Anda memiliki wadah kosong dengan url latar belakang dan apa pun ukuran latar belakangnya, Anda tidak akan melihat bg.gif.
Jika Anda mengatur ukuran kontiner ke
digabungkan dengan kode yang Anda tulis di atas, Anda akan dapat melihat file bg.gif.
sumber
background-size
bekerja di Chrome 4.1, tetapi sejauh ini saya tidak bisa membuatnya berfungsi di Firefox 3.6.sumber
Saya menggunakan gambar latar belakang untuk tombol, tetapi hanya menampilkan gambar dengan ukuran yang sama dengan teks, bahkan jika saya mengatur lebar dan tinggi. Sebagai gantinya, saya menulis teks saya dengan
karakter (spasi yang tidak putus). Saya menampar sebanyak yang diperlukan, pada dasarnya, sampai semua latar belakang tombol muncul. Jadi saya mungkin punya kode seperti ini:Di lembar gaya:
Dalam dokumen HTML:
sumber
Misalnya:
Gambar latar akan selalu sesuai dengan ukuran wadah (lebar 100% dan tinggi 100px).
CSS lintas-browser:
}
sumber
Hal ini dimungkinkan untuk dilakukan di CSS3 dengan ukuran latar belakang
sumber
Jika Anda ingin mengatur
background-size
dibackground
properti yang sama Anda dapat menggunakan gunakan:sumber