इमेज के ठीक केंद्र में टेक्स्ट रखने के लिए position: absolute के साथ transform: translate(-50%, -50%) तकनीक का उपयोग करें। यह किसी भी आकार के टेक्स्ट/इमेज के लिए काम करता है।
उदाहरण: इमेज पर केंद्रित टेक्स्ट
<!DOCTYPE html>
<html>
<head>
<style>
.container {
position: relative;
display: inline-block;
max-width: 100%;
}
img {
width: 100%;
height: auto;
opacity: 0.3;
display: block;
}
.centered-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 18px;
color: white;
background: rgba(0,0,0,0.7);
padding: 10px 20px;
border-radius: 5px;
white-space: nowrap;
}
</style>
</head>
<body>
<h2>इमेज टेक्स्ट</h2>
<p>इमेज के केंद्र में टेक्स्ट जोड़ें:</p>
<div class="container">
<img src="trolltunga.jpg" alt="Norway" width="1000" height="300">
<div class="centered-text">केंद्र</div>
</div>
</body>
</html>
क्यों transform: translate(-50%, -50%)?
top: 50%; left: 50%→ एलिमेंट के **टॉप-लेफ्ट कोने** को कंटेनर के केंद्र पर रखता हैtranslate(-50%, -50%)→ एलिमेंट को अपने **आधे आकार** से ऊपर-बाएं खींचता है- परिणाम: एलिमेंट का **केंद्र** = कंटेनर का **केंद्र**
मॉडर्न विकल्प: Flexbox/Grid
/* Flexbox - सबसे सरल */
.container {
display: flex;
justify-content: center;
align-items: center;
}
/* Grid - सबसे सरल */
.container {
display: grid;
place-items: center;
}
/* दोनों में चाइल्ड स्वचालित केंद्रित होता है */
img { width: 100%; height: auto; }
तुलना
| विधि | ब्राउज़र सपोर्ट | जटिलता | रिस्पॉन्सिव |
|---|---|---|---|
| absolute + transform | सभी (IE9+) | मध्यम | हां |
| Flexbox | सभी (IE10+) | सरल | हां |
| Grid place-items | मॉडर्न | सबसे सरल | हां |