Thủ thuật hiển thị nhãn sử dụng opacity trong CSS
Demo
Hãy xem sự khác biệt trong 2 hình ảnh dưới đây
Ở cả hình 1 và hình 2 đều sử dụng 1 thẻ div có thuộc tính opacity: 0.5; nhưng nếu để ý sẽ thấy chữ trong hình 1 bị mờ đi theo thẻ cha, còn hình 2 thì chữ vẫn giữ nguyên. Vậy thủ thuật ở đây là...
Hình 1
HTML
<div class="container">
<div class="bar">Hello world 1</div>
</div>
CSS
.container {
/* thuộc tính quan trọng
******************************************
position: relative; /* cho thẻ .bar hiển thị trong nó */
******************************************/
background-image: url(galaxy.jpg);
width: 500px;
background: #000;
height: 500px;
width: 80%;
margin: 0 auto;
height: 500px;
}
.bar {
/* thuộc tính quan trọng
******************************************
position: absolute; /* cho thẻ .bar hiển thị trong thẻ cha .container */
bottom: 0; /* thẻ .bar nằm ở dưới thẻ .container */
opacity: 0.2 /* thẻ .bar bị mờ đi */
******************************************
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
font-size: 18px;
font-weight: bold;
background: #fff;
}
Tất nhiên sẽ không có một cách nào có thể làm cho text trong thẻ .bar không bị mờ đi theo nó. Vậy thì phải chơi bằng 1 thẻ khác, đó chính là mấu chốt.
Hình 2
So sánh sự khác nhau giữa HTML của hình 2 và hình 1 sau đây
HTML 1
<div class="container">
<div class="bar">Hello world 1</div>
</div>
HTML 2
<div class="container">
<div class="label">Hello world 2</div>
<div class="bar"></div>
</div>
Đến đây có lẽ bạn cũng đã hiểu được mấu chốt của vấn đề. Thẻ div.bar chỉ để hiển thị mờ, còn text ta sẽ đặt trong 1 thẻ khác. Giờ chỉ cần sắp xếp sao cho thẻ div.label nằm chồng lên thẻ div.bar nữa là xong.
CSS
.label {
/* nằm đè lên thẻ .bar
******************************************
position: absolute;
bottom: 0;
z-index: 10;
******************************************/
font-size: 18px;
font-weight: bold;
height: 50px;
line-height: 50px;
width: 100%;
text-align: center;
color: #fff;
}
Khá đơn giản phải không ?! Hy vọng thủ thuật này sẽ giúp ích nhiều cho bạn trong công việc thiết kế website.
Comments
Post a Comment