Bagaimana saya bisa menyelesaikan superskrip, hanya dalam CSS?
Saya memiliki stylesheet di mana saya menandai tautan eksternal dengan karakter superskrip, tetapi saya mengalami kesulitan mendapatkan karakter disejajarkan dengan benar.
Apa yang saya miliki saat ini, terlihat seperti ini:
a.external:after {
font-size: 50%;
vertical-align: top;
content: "+";
}
tetapi tidak berhasil.
Secara alami, saya akan menggunakan <sup>
-tag, hanya jika content
memungkinkan untuk HTML ...
content
diizinkan HTML, pemisahan kekhawatiran akan terganggu.Jawaban:
Anda dapat melakukan superskrip dengan
vertical-align: super
, (ditambahfont-size
pengurangan yang menyertainya ).Namun, pastikan untuk membaca jawaban lain di sini, terutama yang oleh paulmurray dan cletus , untuk informasi yang bermanfaat.
sumber
font-size
harus dikurangi untuk memberikan efek superscript yang sebenarnya.Jujur saya tidak melihat gunanya melakukan superskrip / subskrip hanya dalam CSS. Tidak ada atribut CSS yang berguna untuk itu, hanya sekelompok implementasi buatan sendiri termasuk:
atau menggunakan vertical-align atau saya yakin cara lain. Masalahnya, itu mulai menjadi rumit:
Poin kedua patut ditekankan. Biasanya superskrip / subskrip sebenarnya bukan masalah gaya tetapi indikasi makna.
Catatan: Perlu disebutkan daftar entitas ini untuk superskrip matematika dan ekspresi subskrip matematika yang umum meskipun pertanyaan ini tidak berhubungan dengan itu.
Tag sub / sup dalam HTML dan XHTML. Saya hanya akan menggunakan itu.
Adapun sisa CSS Anda, atribut: after pseudo-element dan konten tidak didukung secara luas. Jika Anda benar-benar tidak ingin meletakkan ini secara manual dalam HTML saya pikir solusi berbasis Javascript adalah taruhan terbaik Anda berikutnya. Dengan jQuery ini sesederhana:
sumber
Dokumentasi CSS berisi padanan standar industri CSS untuk semua konstruksi HTML. Yaitu: kebanyakan browser web hari ini tidak secara eksplisit menangani
SUB
,SUP
,B
,I
dan sebagainya - mereka (agak agak) diubah menjadiSPAN
elemen dengan sifat CSS yang sesuai, dan mesin rendering hanya berurusan dengan itu.Halaman ini adalah Lampiran D. Lembar gaya default untuk HTML 4
Bit yang Anda inginkan adalah:
sumber
line-height
. IMHO satu-satunya cara untuk tidak mengacaukanline-height
adalah dengan menggunakanposition:relative
seperti yang disarankan oleh cletus: stackoverflow.com/a/501689/260080Saya sedang mengerjakan halaman dengan tujuan memiliki teks yang jelas terbaca, dengan elemen superscript TIDAK mengubah margin atas dan bawah garis - dengan pengamatan berikut:
Jika untuk teks utama yang Anda miliki
line-height: 1.5em
misalnya, Anda harus mengurangi ketinggian baris teks superscript Anda agar teks tersebut muncul dengan benar. Saya menggunakanline-height: 0.5em
.Juga,
vertical-align: super
berfungsi dengan baik di sebagian besar browser tetapi di IE8 ketika Anda memiliki elemen superscript, sisa baris tersebut ditekan ke bawah. Jadi alih-alih saya menggunakanvertical-align: baseline
bersama-sama dengan negatiftop
danposition: relative
untuk mencapai efek yang sama, yang tampaknya berfungsi lebih baik di browser.Jadi, untuk menambah "implementasi homegrown":
sumber
http://htmldog.com/articles/superscript/ Intinya:
Bekerja dengan baik dalam praktik, sejauh yang saya tahu.
sumber
Berikut ini diambil dari html.css internal Mozilla Firefox:
Jadi, dalam kasus Anda itu akan menjadi sesuatu, seperti:
sumber
Ini adalah solusi bersih lainnya:
Dengan cara ini Anda masih dapat menggunakan tag dukungan / sub tetapi Anda memperbaiki perilaku buruk mereka untuk selalu mengacaukan ketinggian baris paragraf .
Jadi sekarang Anda bisa melakukannya:
Dan tinggi baris paragraf Anda seharusnya tidak kacau.
Diuji pada IE7, IE8, FF3.6, SAFARI4, CHROME5, OPERA9
Saya menguji menggunakan
p {line-height: 1.3;}
(yang merupakan ketinggian garis yang baik kecuali jika Anda ingin garis Anda tetap terlalu dekat) dan masih berfungsi, karena "-0.6em" adalah jumlah yang sangat kecil yang juga dengan ketinggian garis itu sub / sub teks akan cocok dan jangan saling membahas.Lupa detail yang mungkin relevan Saya selalu menggunakan DOCTYPE di baris 1 halaman saya (khususnya saya menggunakan HTML 4.01
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
). Jadi saya tidak tahu apakah solusi ini berfungsi dengan baik ketika browser berada dalam quirkmode (atau bukan mode standar) karena kurangnya DOCTYPE atau DOCTYPE yang tidak memicu mode Standar / Hampir Standar.sumber
Jika Anda mengubah ukuran font, Anda mungkin ingin berhenti menyusut dengan aturan ini:
sumber
Saya tidak yakin apakah ini terkait tetapi saya telah memecahkan masalah saya dengan
²
entitas HTML karena saya tidak dapat menambahkan tag html lain di dalam<label>
tag. Jadi idenya menggunakan kode ASCII, bukan css atau tag HTML.sumber
Lihat: http://www.cssdesignpatterns.com/Chapter%2012%20-%20ALIGNING%20CONTENT/Vertical-aligned%20Content/example.html
jika sepertinya Anda ingin "meluruskan vertikal: teks-atas"
sumber
Properti CSS
font-variant-position
sedang dipertimbangkan dan mungkin akhirnya menjadi jawaban untuk pertanyaan ini. Pada awal 2017, hanya Firefox yang mendukungnya.Lihat MDN .
sumber
Terkait atau mungkin tidak terkait, menggunakan superscript sebagai elemen HTML atau sebagai span + css dalam teks dapat menyebabkan masalah dengan pelokalan - dalam program pelokalan.
Sebagai contoh mari katakan "3 rd perangkat lunak pihak":
Bagaimana penerjemah menerjemahkan "rd"? Mereka dapat membiarkannya kosong untuk beberapa bahasa cyrrilic, tetapi bagaimana dengan bahasa eksotis atau RTL lainnya?
Dalam hal ini lebih baik untuk menghindari menggunakan superskrip dan menggunakan kata-kata penuh seperti "perangkat lunak pihak ketiga". Atau, seperti yang disebutkan di sini di komentar lain, menambahkan tanda plus dalam superscript melalui jQuery.
sumber
sumber
Berikut cara yang tepat untuk sup:
Menemukan ini melalui elemen inspeksi google chrome.
sumber