Ada beberapa langkah yang bisa dilakukan untuk dapat membuat full page background. Konsepnya adalah sebagai berikut.
- Isi keseluruhan halaman dengan gambar, tanpa white-space.
- Ubah ukuran (scale) gambar sesuai kebutuhan.
- Pertahankan proporsi gambar
- Gambar diletakkan di tengah-tengah halaman.
- Tidak boleh menyebabkan munculnya scrollbar.
- Harus kompatibel di berbagai browser.
Teknik 1
Teknik pertama ini menggunakan tag img dalam html. Gambar yang akan dijadikan background diletakkan dalam wrapper sedemikian rupa.- Langkah awal, buatlah struktur html sederhana seperti dalam kode di bawah ini.
123456789101112131415161718192021
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.w3.org/1999/xhtml"
>
<head>
<title>Full page background</title>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
/>
<link rel=
"stylesheet"
type=
"text/css"
charset=
"utf-8"
href=
"style.css"
/>
</head>
<body>
<div id=
"bg"
>
<div>
<table cellspacing=
"0"
cellpadding=
"0"
>
<tr>
<td>
<img src=
"images/bg.jpg"
alt=
""
/>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
- Kode di atas hanya menampilkan gambar biasa dalam halaman website,
namun tanpa mengatur ukurannya. Setelah itu, untuk mengatur CSS-nya,
diletakkan dalam file terpisah.
123456789101112131415161718192021222324252627282930313233
* {
margin
:
0
;
padding
:
0
;
}
html, body, #bg, #bg table, #bg td {
height
:
100%
;
width
:
100%
;
overflow
:
hidden
;
}
#bg {
position
:
fixed
;
}
#bg div {
height
:
200%
;
left
:
-50%
;
position
:
absolute
;
top
:
-50%
;
width
:
200%
;
}
#bg td {
text-align
:
center
;
vertical-align
:
middle
;
}
#bg img {
margin
:
0
auto
;
min-height
:
50%
;
min-width
:
50%
;
}
- Untuk menambahkan content di dalamnya, cukup menambahkan wrapper
untuk content di luar wrapper background, seperti kode di bawah ini.
12345
<div id=
"cont"
>
<div
class
=
"box"
>
<!-- content in here -->
</div>
</div>
- Untuk CSS-nya, tambahkan juga ke dalam file CSS sebelumnya.
12345678910111213141516171819
#cont {
position
:
absolute
;
top
:
0
;
left
:
0
;
z-index
:
70
;
overflow
:
auto
;
width
:
100%
;
height
:
100%
;
}
.box {
margin
:
0
auto
;
width
:
400px
;
padding
:
50px
;
background
:
white
;
padding-bottom
:
100px
;
font
:
14px
/
2.8
Georgia,
Serif
;
}
#focus-stealer {
position
:
absolute
;
left
:
-9999px
; }
Teknik 2
Selain menggunakan teknik pertama tadi, ada teknik lain yang relatif lebih efisien. Dengan teknik ini, tidak perlu untuk memasukkan tag background ke dalam wrapper yang terlalu rumit.- Yang perlu dilakukan adalah cukup membuat tag img biasa, dengan sebuah class “bg” tambahan untuk mengatur style-nya.
12345678910111213141516
<!DOCTYPE html>
<html lang=
"en"
>
<head>
<meta http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
<title>Full Page Background Image, Teknik #2</title>
</head>
<body>
<img src=
"images/bg.jpg"
class
=
"bg"
alt=
"back"
/>
<div id=
"content"
>
<!-- content in here -->
</div>
</body>
</html>
- Setelah itu, Anda harus membuat CSS untuk mengatur ukuran dan letak
background tersebut. CSS bisa diletakkan terpisah, atau dalam file html
yang sama. Dalam contoh ini, CSS diletakkan dalam tag head html.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
<style type=
"text/css"
media=
"screen"
>
img.bg {
/* aturan untuk full background */
min-height: 100%;
min-width: 1024px;
/* scale secara proporsional */
width: 100%;
height: auto;
/* mengatur posisi */
position: fixed;
top: 0;
left: 0;
}
@media screen
and
(max-width: 1024px){
img.bg {
left: 50%;
margin-left: -512px; }
}
div#content {
/* This is the only important rule */
/* We need our content to show up on top of the background */
position: relative;
/* hanya untuk style, tidak memberi dampak pada fungsional */
width: 500px;
margin: 0 auto;
background: #fff;
padding: 20px;
font-family: helvetica, arial, sans-serif;
font-size: 10pt;
line-height: 16pt;
-moz-box-shadow: #000 4px 4px 10px;
-webkit-box-shadow: #000 4px 4px 10px;
}
body {
/* hanya untuk style, tidak memberi dampak pada fungsional */
margin: 0;
padding: 20px 0 0 0;
}
</style>
Tidak ada komentar:
Posting Komentar