Pada artikel kali ini saya akan membahas Position Relative dan Absolute Pada CSS. Penting sekali sebagai Frontend kita tahu bedanya position relative
dan absolute
. Saya akan coba contohkan bagaimana caranya kita bisa membuat Search Input seperti gambar berikut ini:
Position Relative
Ketika kita coba mengatur salah satu element HTML menjadi position: relative
, maka kita bisa menggunakan attribute css top
, right
, bottom
, dan left
untuk mengatur posisi element tersebut dan element tersebut akan menjadi parent (Contohnya bisa dilihat pada Mengatur Parent).
Contohnya:
<!DOCTYPE html>
<html lang="id">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Position Relative</title>
<style>
.wrapper {
width: 300px;
border: 1px solid lightgray;
border-radius: 0.5rem;
padding: 1rem;
}
.title {
position: relative;
left: 20px;
}
</style>
</head>
<body>
<div class="wrapper">
<h1 class="title">Judul</h1>
<p>Isi</p>
</div>
</body>
</html>
Dari contoh HTML di atas, dapat dilihat kita mengatur position: relative
dan left: 20px
pada judul, maka judul akan bergeser dari kiri sebanyak 20px
.
Position Absolute
Ketika kita coba mengatur salah satu element HTML menjadi position: absolute
, maka kita bisa menggunakan attribute css top
, right
, bottom
, dan left
untuk mengatur posisi element tersebut. Namun bedanya dengan relative
adalah element akan mengambang dan jika kita mengatur posisi element tersebut, patokan pergeserannya adalah dari parent nya.
Contohnya:
<!DOCTYPE html>
<html lang="id">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Position Relative</title>
<style>
.wrapper {
width: 300px;
border: 1px solid lightgray;
border-radius: 0.5rem;
padding: 1rem;
}
.title {
position: absolute;
right: 20px;
}
</style>
</head>
<body>
<div class="wrapper">
<h1 class="title">Judul</h1>
<p>Isi</p>
</div>
</body>
</html>
Dari contoh HTML di atas, dapat dilihat kita mengatur position: absolute
dan right: 20px
pada judul, maka posisi judul akan berada 20px
dari sebelah kanan parent nya. Dalam kasus ini karena kita tidak mengatur parent, maka default nya adalah Viewport.
Mengatur Parent
Kita akan coba mengatur parent element judul menjadi element .wrapper
. Sehingga element judul tidak keluar dari .wrapper
. Caranya adalah kita perlu menambahkan position: relative
pada .wrapper
.
<!DOCTYPE html>
<html lang="id">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Position Absolute + Relative</title>
<style>
.wrapper {
width: 300px;
border: 1px solid lightgray;
border-radius: 0.5rem;
padding: 1rem;
position: relative;
}
.title {
position: absolute;
right: 20px;
}
</style>
</head>
<body>
<div class="wrapper">
<h1 class="title">Judul</h1>
<p>Isi</p>
</div>
</body>
</html>
Bisa dilihat pada gambar di bawah ini. Ketika kita tambahkan position: relative
pada element .wrapper
menyebabkan judul bergeser 20px
dari kanan element .wrapper
.
Demo
Kita akan mencoba membuat Search Input yang di dalamnya ada icon search dengan menggunakan position relative
dan absolute
.
<!DOCTYPE html>
<html lang="id">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Search Input</title>
<style>
.search-wrapper {
position: relative;
}
.search-wrapper .icon {
position: absolute;
left: 10px;
height: 100%;
}
.search-wrapper input {
background-color: #EBEDF0;
border-radius: 2rem;
padding: 0.5rem 0.5rem 0.5rem 2rem;
border: none;
}
</style>
</head>
<body>
<div class="search-wrapper">
<svg class="icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" height="16px" width="16px"><path d="M6.02945,10.20327a4.17382,4.17382,0,1,1,4.17382-4.17382A4.15609,4.15609,0,0,1,6.02945,10.20327Zm9.69195,4.2199L10.8989,9.59979A5.88021,5.88021,0,0,0,12.058,6.02856,6.00467,6.00467,0,1,0,9.59979,10.8989l4.82338,4.82338a.89729.89729,0,0,0,1.29912,0,.89749.89749,0,0,0-.00087-1.29909Z" /></svg>
<input placeholder="Search">
</div>
</body>
</html>
Contoh Kasus
Berikut beberapa contoh kasus yang memakai position relative
dan absolute
:
Contoh 1
Contoh 2
Penutup
Terimakasih sudah membaca artikel Position Relative dan Absolute Pada CSS. Semoga artikel ini bisa bermanfaat bagi teman-teman.