Di akhir setiap jenis posting di tema Tumblr saya, saya mendapatkan kode ini:
<p class="permalink">
<a href="{Permalink}">{NoteCountWithLabel}</a>
{block:HasTags} # filed under:
{block:Tags}
<a href="{TagURL}">{Tag}</a>
{/block:Tags}
{/block:HasTags}
</p>
(Saya tahu
bit itu bukan tindakan kelas. Itu solusi saya yang kedua, dan itu bukan tujuan dari pertanyaan ini, jadi bersabarlah!)
Pada posting dengan banyak tag, yang menghasilkan:
Jika saya hanya menambahkan koma setelah {Tag}
, membuatnya <a href="{TagURL}">{Tag},</a>
, saya mendapatkan:
Tag terakhir memiliki koma yang asing, dan kiriman dengan hanya satu tag akan menunjukkan koma tambahan di bawah metode ini.
Bagaimana cara menambahkan jumlah koma yang tepat?
Perbarui :
Jawaban Jeremy di bawah ini melakukan apa yang saya inginkan. Tapi, dalam upaya untuk mendapatkan mewah menjadi "standar-compliant" (meskipun saya tidak tahu mengapa ada orang yang menggunakan IE8 akan membaca tumblr saya), saya berusaha untuk menerapkan w3d ini saran. Jadi sekarang CSS terlihat seperti:
a.tag:before {
content:", ";
}
a.tag:first-child:before {
content:"";
}
Hasilnya sekarang:
( nb: line break tidak berhubungan - saya menambahkannya dengan sengaja. )
Begitu. Apa yang salah?
sumber
,
mungkin merupakan ruang putih yang terjadi setelah</a>
di markup / tema Anda. Anda dapat mencoba menghapus ini. Koma pertama masih ada? Coba ubahcontent:"";
menjadicontent:"%";
hanya untuk melihat apakah%
pertunjukan? (Meskipun saya melihat dari komentar Anda pada jawaban saya bahwa ini mungkin tidak berpengaruh ?!)Jawaban:
Saya punya ide lain.
Ini akan menambahkan rentang dengan kelas "tagtail" setelah setiap tag.
Lalu, tambahkan css ini:
Ini akan memilih setiap jangkar tag yang muncul setelah rentang tagtail (jadi setiap orang kecuali yang pertama). Dengan cara ini, kami menghindari kebutuhan untuk menggunakan penyeleksi anak pertama atau anak terakhir .
MEMPERBARUI:
Jika Anda ingin memastikan bahwa koma ditata terpisah dari jangkar, saya kira Anda juga bisa melakukannya:
dan kemudian gaya seperti:
Namun, ini mungkin perlu diubah karena browser berbeda pada aturan utama.
sumber
{block:Tags}<span class="taghead">, </span><a class="tag" href="{TagURL}">{Tag}</a>{/block:Tags}
dan gaya kemudian seperti:span.taghead { display:none; } a.tag + span.taghead { display:inline; }
. Namun, ini mungkin perlu diubah karena browser berbeda pada aturan utama.tagtail
Metode itu render spasi sebelum koma, tapi ini sedikittaghead
agak membuat saya sangat bahagia sekarang. Pertimbangkan untuk menambahkan komentar Anda kembali ke jawabannya?Coba beberapa tipuan CSS (untuk membuatnya bekerja di IE 8, Anda perlu menentukan <! DOCTYPE> di bagian atas dokumen).
Kemudian, tambahkan CSS berikut:
Ia menggunakan pseudo-selector : after dan properti konten yang jarang digunakan untuk menambahkan koma setelah fakta. Aturan kedua menimpa properti konten untuk tag terakhir dalam urutan.
sumber
last-child
pseudo-class bahkan dalam mode standar yang sesuai (mis. Dengan DOCTYPE). Anda harus menggunakanfirst-child:before
untuk mendukung IE8 (dan IE7).Mengikuti dari @ Jeremy jawaban ... Untuk mendukung IE8 (dan IE7) Anda harus menggunakan
first-child
pseudo-class, bukanlast-child
. IE8 tidak mendukunglast-child
, bahkan dalam mode yang sesuai standar (mis. Dengan DOCTYPE).EDIT: Namun, sedikit keberatan dengan pendekatan ini adalah bahwa Anda mungkin harus menghapus spasi putih tambahan yang muncul setelah penutupan
</a>
markup / tema Anda.EDIT: Screenshot dari output biola di Safari 5.0 pada OS X:
sumber
a.tag:before { content:", ";}
dana.tag:first-child:before { content:"# tagged: ";}
, tetapi menghasilkan deretan tag yang hanya mengatakan, Mareen Fischinger , New York City , Times Square
. Hm Komentar ini membingungkan. Saya akan memperbarui pertanyaan.Membangun
:before
saran dalam jawaban sebelumnya. Jika Anda bekerja dengan daftar tag, sangat mungkin bahwa Anda akan menempatkannya dalam daftar. Jika Anda menggunakan masing-masingli
tag dengan:before
daripada tag di dalamli
tag - setiap tag akan menjadi yang pertama-anak darili
tag namun hanya satuli
tag akan menjadi yang pertama-anak dariul
atauol
tag! Saya menggunakan daftar deskripsi karena saya ingin meletakkan "Tag" did
tag t sehingga hal yang sama berlaku untukd
tag d.Namun menggunakan daftar deskripsi memiliki kompleksitas tambahan.
dd
Tag pertama tidak pernah merupakan anak pertama daridl
tag, ini adalahdt
tag, jadi Anda harus menggunakannyanth-child(2)
untuk menargetkannya. Kelemahan dari penggunaannyanth-child(2)
adalah lagi-lagi ini tidak sesuai dengan IE 8 sehingga masalah muncul kembali.Inilah solusi saya.
Juga dari jawaban sebelumnya mereka menyarankan agar menggunakan spasi di konten (
content: ", ";
) berfungsi. Apakah itu bekerja? Saya tidak bisa menjalankannya tetapi "\ 00a0" akan melakukannya.sumber