1 Thiết lập CSS chung cho các bài viết thuộc nhãn nhất định 18/01/12, 10:19 pm
[KiNg]_[PiN]-BB
Khi
mổ xẻ phân tích cấu trúc XML liên quan đến nhãn trong Template của
blogspot, có khối chuyện để tùy biến và sáng tạo. Ở đây mình sẽ cùng bạn
“nghịch ngợm” qua vấn đề thiết lập CSS chung cho các bài thuộc một nhãn
nhất định.
Xem Demo.
Trước tiên chúng ta cần biết được đoạn code liên quan đến liên kết nhãn trong Template ở chế độ mở rộng mẫu tiện ích như sau:
Lưu ý, trong Template có thể có nhiều đoạn code như vậy, trường hợp này
chỉ chú ý đến đoạn code nằm ở phần post-footer, tức là nằm sau thẻ
<div class='post-footer'>.
Trong đoạn code trên, thẻ dữ liệu <data:label.name/> xác định tên
nhãn. Vậy khi cần gán điều kiện nào đó cho một nhãn thì sử dụng lệnh
điều kiện như sau:
cơ sở này chúng ta có thể gán điều kiện CSS chung cho cho tất cả các
bài viết thuộc một nhãn nhất định, qua đó có thể đặt màu nền, màu văn
bản, font chữ hay nhiều định dạng CSS khác góp phần tạo nét riêng cho
các bài viết thuộc một nhãn nào đó. Để làm được điều này, chúng ta cần
gắn ID cho bài viết bằng cách thay dòng <div class='post-body entry-content'>
bằng dòng <div class='post-body entry-content' expr:id='data:post.id'>.
Tiếp theo chúng ta cần đặt CSS chung cho phần bài viết của một nhãn, kết hợp đoạn script có chức năng gán class cho nhãn:
thuật, lúc này bạn có thể bắt đầu tùy biến CSS theo ý thích của mình.
Nếu bạn muốn tạo CSS chung cho các bài viết thuộc một nhãn khác, thì bạn
tiếp tục thiết lập định dạng CSS và Javascript có thể như sau:
mổ xẻ phân tích cấu trúc XML liên quan đến nhãn trong Template của
blogspot, có khối chuyện để tùy biến và sáng tạo. Ở đây mình sẽ cùng bạn
“nghịch ngợm” qua vấn đề thiết lập CSS chung cho các bài thuộc một nhãn
nhất định.
Xem Demo.
Trước tiên chúng ta cần biết được đoạn code liên quan đến liên kết nhãn trong Template ở chế độ mở rộng mẫu tiện ích như sau:
<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href=label.url' rel='tag'><data:label.name/></a>
<b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>
</span>
Lưu ý, trong Template có thể có nhiều đoạn code như vậy, trường hợp này
chỉ chú ý đến đoạn code nằm ở phần post-footer, tức là nằm sau thẻ
<div class='post-footer'>.
Trong đoạn code trên, thẻ dữ liệu <data:label.name/> xác định tên
nhãn. Vậy khi cần gán điều kiện nào đó cho một nhãn thì sử dụng lệnh
điều kiện như sau:
Trên
<b:if cond='data:label.name = "Tên nhãn"'>
... điều kiện được gán nằm ở đây ...
</b:if>
cơ sở này chúng ta có thể gán điều kiện CSS chung cho cho tất cả các
bài viết thuộc một nhãn nhất định, qua đó có thể đặt màu nền, màu văn
bản, font chữ hay nhiều định dạng CSS khác góp phần tạo nét riêng cho
các bài viết thuộc một nhãn nào đó. Để làm được điều này, chúng ta cần
gắn ID cho bài viết bằng cách thay dòng <div class='post-body entry-content'>
bằng dòng <div class='post-body entry-content' expr:id='data:post.id'>.
Tiếp theo chúng ta cần đặt CSS chung cho phần bài viết của một nhãn, kết hợp đoạn script có chức năng gán class cho nhãn:
Bước tiếp theo là thay đoạn code liên quan đến nhãn bằng đoạn code bên dưới:
<style type='text/css'>
.postLabel1 {
background: transparent url(URL_hình nền) no-repeat 50% 50%;
color: #d8eaee;
font-size: 14px;
line-height: 18px;
padding: 20px;
}
</style>
<script type='text/javascript'>
//<![CDATA[
function specifyLabel1(strx) { document.getElementById(strx).className='postLabel1'; }
//]]>
</script>
Đến đây là hoàn tất các bước thực hiện thủ
<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href=label.url' rel='tag'><data:label.name/></a>
<b:if cond='data:label.name == "Tên nhãn 1"'>
<script type='text/javascript'> specifyLabel1('<data:post.id/>') </script>
</b:if>
<b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>
</span>
thuật, lúc này bạn có thể bắt đầu tùy biến CSS theo ý thích của mình.
Nếu bạn muốn tạo CSS chung cho các bài viết thuộc một nhãn khác, thì bạn
tiếp tục thiết lập định dạng CSS và Javascript có thể như sau:
Và cuối cùng sử dụng code chỉ định nhãn như thế này:
<style type='text/css'>
.postLabel2 {
-moz-border-radius: 10px;
-moz-box-shadow: inset 10px 10px 25px #432, inset -10px -10px 25px #432;
background-color: #101921;
margin: 30px auto;
padding: 30px 0;
text-align: center;
width: 550px;
}
.postLabel2 img {
-moz-border-radius: 10px;
-moz-box-shadow: inset 10px 10px 25px #765, inset -10px -10px 25px #765;
border: none !important;
padding: 20px !important;
}
</style>
<script type='text/javascript'>
//<![CDATA[
function specifyLabel2(strx) { document.getElementById(strx).className='postLabel2'; }
//]]>
</script>
Nhớ thay Tên nhãn 1, Tên nhãn 2 bằng các tên nhãn tương ứng mà bạn muốn thiết lập CSS chung cho các bài viết thuộc các nhãn này nhé.
<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href=label.url' rel='tag'><data:label.name/></a>
<b:if cond='data:label.name == "Tên nhãn 1"'>
<script type='text/javascript'> specifyLabel1('<data:post.id/>') </script>
</b:if>
<b:if cond='data:label.name == "Tên nhãn 2"'>
<script type='text/javascript'> specifyLabel2('<data:post.id/>') </script>
</b:if>
<b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>
</span>