Dukungan Browser yang Lebih Lama
Jika dukungan peramban yang lebih lama adalah suatu keharusan, jadi Anda tidak bisa menggunakan banyak latar belakang atau gradien, Anda mungkin ingin melakukan sesuatu seperti ini pada div
elemen cadangan :
#background {
position: fixed;
top: 0;
left: 0;
width: 50%;
height: 100%;
background-color: pink;
}
Contoh: http://jsfiddle.net/PLfLW/1704/
Solusinya menggunakan div tetap tambahan yang mengisi setengah layar. Karena sudah diperbaiki, itu akan tetap di posisi bahkan ketika pengguna Anda menggulir. Anda mungkin harus bermain-main dengan beberapa z-index nanti, untuk memastikan elemen Anda yang lain berada di atas div latar belakang, tetapi seharusnya tidak terlalu rumit.
Jika Anda memiliki masalah, pastikan sisa konten Anda memiliki indeks-z lebih tinggi dari elemen latar belakang dan Anda harus melakukannya dengan baik.
Peramban Modern
Jika browser yang lebih baru adalah satu-satunya masalah Anda, ada beberapa metode lain yang dapat Anda gunakan:
Gradien Linier:
Ini jelas merupakan solusi termudah. Anda dapat menggunakan gradien linier di properti latar belakang tubuh untuk berbagai efek.
body {
height: 100%;
background: linear-gradient(90deg, #FFC0CB 50%, #00FFFF 50%);
}
Ini menyebabkan cutoff keras pada 50% untuk setiap warna, jadi tidak ada "gradien" seperti namanya. Cobalah bereksperimen dengan potongan gaya "50%" untuk melihat efek berbeda yang dapat Anda capai.
Contoh: http://jsfiddle.net/v14m59pq/2/
Berbagai Latar Belakang dengan ukuran latar belakang:
Anda bisa menerapkan warna latar belakang ke html
elemen, dan kemudian menerapkan gambar latar belakang ke body
elemen dan menggunakan background-size
properti untuk mengaturnya menjadi 50% dari lebar halaman. Ini menghasilkan efek yang serupa, meskipun hanya akan digunakan pada gradien jika Anda menggunakan satu atau dua gambar.
html {
height: 100%;
background-color: cyan;
}
body {
height: 100%;
background-image: url('http://i.imgur.com/9HMnxKs.png');
background-repeat: repeat-y;
background-size: 50% auto;
}
Contoh: http://jsfiddle.net/6vhshyxg/2/
CATATAN EKSTRA: Perhatikan bahwa elemen html
dan body
diatur ke height: 100%
dalam contoh yang terakhir. Ini untuk memastikan bahwa bahkan jika konten Anda lebih kecil dari halaman, latar belakang akan setidaknya setinggi viewport pengguna. Tanpa tinggi eksplisit, efek latar belakang hanya akan turun sejauh konten halaman Anda. Ini juga hanya praktik yang baik secara umum.
linear-gradient
cutoff keras juga bekerja untuk piksel:background: linear-gradient(90deg, #FFC0CB 225px, #00FFFF 0, #00FFFF 100%);
background: linear-gradient(90deg, #FFC0CB 25%, #00FFFF 0);
.Solusi sederhana untuk mencapai latar belakang "terbagi dua":
Anda juga dapat menggunakan derajat sebagai arah
sumber
Anda dapat membuat perbedaan yang sulit daripada gradien linier dengan meletakkan warna kedua ke 0%
Misalnya,
Gradien -
background: linear-gradient(80deg, #ff0000 20%, #0000ff 80%);
Perbedaan keras -
background: linear-gradient(80deg, #ff0000 20%, #0000ff 0%);
sumber
Jadi, ini adalah pertanyaan yang sangat lama yang sudah memiliki jawaban yang diterima, tetapi saya percaya bahwa jawaban ini akan dipilih seandainya itu diposting empat tahun yang lalu.
Saya memecahkan masalah ini murni dengan CSS, dan TANPA ELEMEN DOM EXTRA! Ini berarti bahwa dua warna murni itu, hanya warna latar belakang ONE ELEMENT, bukan warna latar belakang dua.
Saya menggunakan gradien dan, karena saya mengatur warna berhenti begitu dekat, sepertinya warnanya berbeda dan tidak berbaur.
Berikut adalah gradien dalam sintaksis asli:
Warna
#74ABDD
dimulai pada0%
dan masih#74ABDD
pada49.9%
.Kemudian, saya memaksa gradien untuk beralih ke warna berikutnya dalam
0.2%
ketinggian elemen, menciptakan apa yang tampak sebagai garis yang sangat solid antara kedua warna.Inilah hasilnya:
Dan inilah JSFiddle saya!
Selamat bersenang-senang!
sumber
background: repeating-linear-gradient(var(--grayLight), var(--grayLight) 430px, rgba(0,0,0,0) 201px, rgba(0,0,0,0) 100%);
ini harus bekerja dengan css murni.
diuji hanya di Chrome.
sumber
Dalam proyek masa lalu yang harus mendukung IE8 + dan saya mencapai ini menggunakan gambar yang dikodekan dalam format data-url.
Gambar itu 2800x1px, setengah dari gambar putih, dan setengah transparan. Bekerja dengan cukup baik.
Anda dapat melihatnya bekerja di sini JsFiddle . Semoga bisa membantu seseorang;)
sumber
Saya telah menggunakan
:after
dan berfungsi di semua browser utama. silakan periksa tautannya. hanya perlu hati-hati untuk z-index karena setelah ini memiliki posisi absolut.tautan biola
sumber
Anda bisa menggunakan
:after
pemilih-semu untuk mencapai ini, meskipun saya tidak yakin dengan kompatibilitas pemilih itu.Saya telah menggunakan ini untuk memiliki dua gradien berbeda pada latar belakang halaman.
sumber
Gunakan pada gambar Anda bg
Perpecahan vertikal
Perpecahan horizontal
Contoh
sumber
background-position: center center
Salah satu cara untuk mengimplementasikan masalah Anda untuk memasukkan satu baris di dalam div Anda:
Berikut adalah kode demonstrasi dan lebih banyak opsi (horizontal, diagonal, dll.), Anda dapat mengklik "Jalankan cuplikan kode" untuk melihatnya secara langsung.
sumber
Opsi yang paling anti peluru dan semantik benar adalah dengan menggunakan elemen semu yang diposisikan tetap (
::after
atau::before
). Menggunakan teknik ini jangan lupa untuk mengaturz-index
elemen di dalam wadah. Selain itu,content:""
aturan untuk pseudo-element diperlukan, jika tidak maka tidak akan di-render.Contoh langsung: https://jsfiddle.net/xraymutation/pwz7t6we/16/
sumber
sumber
Ini adalah contoh yang akan berfungsi pada sebagian besar browser.
Pada dasarnya Anda menggunakan dua warna latar belakang, yang pertama mulai dari 0% dan berakhir pada 50% dan yang kedua mulai dari 51% dan berakhir pada 100%
Saya menggunakan orientasi horisontal:
Untuk penyesuaian yang berbeda, Anda dapat menggunakan http://www.colorzilla.com/gradient-editor/
sumber
jika Anda ingin menggunakan
linear-gradient
dengan tinggi 50%:sumber