Saya ingin memiliki daftar "di dalam" dengan daftar bullet atau angka desimal yang rata dengan blok teks superior. Baris kedua dari entri daftar harus memiliki indentasi yang sama seperti baris pertama!
Misalnya:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aenean commodo ligula eget dolor. Aenean Aenean massa.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Donec quam felis,
1. Text
2. Text
3. longer Text, longer Text, longer Text, longer Text, longer Text, longer Text
second line of longer Text
4. Text
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aenean commodo ligula eget dolor.
CSS hanya menyediakan dua nilai untuk "list-style-position" - di dalam dan di luar. Dengan "bagian dalam" baris kedua rata dengan poin daftar bukan dengan garis superior:
3. longer Text, longer Text, longer Text, longer Text, longer Text, longer Text
second line of longer Text
4. Text
Lebar "di luar" daftar saya tidak rata dengan blok teks unggul lagi.
Eksperimen lebar teks-indentasi, padding-kiri dan margin-kiri bekerja untuk daftar tidak berurutan tetapi mereka gagal untuk daftar berurutan karena itu tergantung pada jumlah karakter daftar-desimal:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aenean commodo ligula eget dolor.
3. longer Text, longer Text, longer Text, longer Text, longer Text, longer Text
second line of longer Text
4. Text
11. Text
12. Text
"11." dan "12." tidak rata dengan blok teks superior dibandingkan dengan "3." dan "4.".
Jadi di mana rahasianya tentang daftar pesanan dan indentasi baris kedua? Terima kasih atas usaha Anda!
sumber
Jawaban:
Memperbarui
Jawaban ini sudah usang. Anda dapat melakukan ini lebih sederhana, seperti ditunjukkan dalam jawaban lain di bawah ini:
Lihat https://www.w3schools.com/cssref/pr_list-style-position.asp
Jawaban Asli
Saya terkejut melihat ini belum diselesaikan. Anda dapat menggunakan algoritma tata letak tabel browser (tanpa menggunakan tabel) seperti ini:
Demo: http://jsfiddle.net/4rnNK/1/
Untuk membuatnya bekerja di IE8, gunakan
:before
notasi warisan dengan satu titik dua.sumber
foo
hanyalah string arbitrer (id), digunakan untuk menghubungkan properticounter-reset
,counter-increment
dancounter()
.position: relative
pada<li>
danposition: absolute
pada konten yang dihasilkan. Lihat jsfiddle.net/maryisdead/kgr4k untuk contoh.40px
? Itu akan pecah ketika penghitung lebih luas dari itu . Inti dari penggunaan tata letak tabel adalah bahwa browser akan secara otomatis sesuai dengan konten.Saya percaya ini akan melakukan apa yang Anda cari.
JSFiddle: https://jsfiddle.net/dzbos70f/
sumber
1em
tidak sama dengan ruang indentasi. Garis tidak akan selaras dengan pixel-bijaksana. Kedua, bagaimana dengan ketika daftar mencapai angka 10? 100? Indentasi teks tidak akan berfungsi, itu tidak akan disejajarkan. Jawaban ini harus dipilih.1em
. oi60.tinypic.com/a0eyvs.jpg Daftar-item pertama menggunakan teknik indentasi teks di atas. Dibandingkan dengan tampilannya yang biasanya dengan posisi-gaya-posisi: di luar tidak selaras, dimatikan oleh piksel dalam kasus ini.Cara termudah dan terbersih, tanpa peretasan, adalah dengan indentasi
ul
(atauol
), seperti:Ini memberikan hasil yang sama dengan jawaban yang diterima: https://jsfiddle.net/5wxf2ayu/
Tangkapan layar:
sumber
list-style-position: outside
untuk<li>
.Periksa biola ini:
http://jsfiddle.net/K6bLp/
Ini menunjukkan bagaimana secara manual memasukkan dan menggunakan CSS.
HTML
CSS
Saya juga mengedit biola Anda
http://jsfiddle.net/j7MEd/3/
Catat itu.
sumber
type
atribut untuk<ol>
tampaknya sudah usang dalam HTML 5. Gunakanstyle="list-style-type: "
sebagai gantinya.Anda dapat mengatur margin dan bantalan salah satu
ol
atauul
dalam CSSsumber
Saya percaya Anda hanya perlu meletakkan daftar 'peluru' di luar padding.
sumber
Anda dapat menggunakan CSS untuk memilih rentang; dalam hal ini, Anda ingin daftar item 1-9:
Kemudian sesuaikan margin pada item pertama dengan tepat:
Lihat beraksi di sini: http://www.wortfm.org/wort-madison-charts-for-the-week-beginning-11192012/
sumber
CSS berikut melakukan trik:
sumber
solusi saya cukup sama dengan Pumbaa80 , tapi saya sarankan untuk menggunakan
display: table
bukandisplay:table-row
untukli
elemen. Jadi akan menjadi seperti ini:Jadi sekarang kita dapat menggunakan margin untuk jarak antara
li
'ssumber
Saya sendiri cukup menyukai solusi ini:
sumber
Daftar ol, ul akan berfungsi jika Anda mau, Anda juga dapat menggunakan tabel dengan perbatasan: tidak ada di css.
sumber
CSS hanya menyediakan dua nilai untuk "list-style-position" - di dalam dan di luar. Dengan "bagian dalam" baris kedua rata dengan poin daftar bukan dengan garis superior:
Dalam daftar yang diurutkan, tanpa intervensi, jika Anda memberikan "daftar-gaya-posisi" nilai "di dalam", baris kedua dari item daftar panjang tidak akan memiliki indentasi, tetapi akan kembali ke tepi kiri daftar (yaitu akan sejajar dengan jumlah item). Ini khusus untuk daftar yang dipesan dan tidak terjadi di daftar yang tidak berurutan.
Jika Anda memberikan "daftar-gaya-posisi" nilai "di luar", baris kedua akan memiliki indentasi yang sama dengan baris pertama.
Saya punya daftar dengan perbatasan dan punya masalah ini. Dengan "daftar-gaya-posisi" diatur ke "di dalam", daftar saya tidak seperti yang saya inginkan. Tetapi dengan "daftar-gaya-posisi" diatur ke "luar", jumlah item daftar berada di luar kotak.
Saya menyelesaikan ini dengan hanya menetapkan margin kiri yang lebih luas untuk seluruh daftar, yang mendorong seluruh daftar ke kanan, kembali ke posisi semula.
CSS:
ol.classname {margin: 0; padding: 0;}
ol.classname li {margin: 0.5em 0 0 0; padding-left: 0; list-style-position: outside;}
HTML:
sumber
Ok, saya sudah kembali dan menemukan beberapa hal. Ini adalah SOLUSI KASAR untuk apa yang saya usulkan, tetapi tampaknya fungsional.
Pertama, saya membuat angka-angka sebagai serangkaian daftar tidak berurutan. Daftar yang tidak berurutan biasanya memiliki cakram di awal setiap item daftar (
Lalu, saya menampilkan seluruh daftar: table-row. Di sini, mengapa saya tidak hanya menempelkan Anda kode daripada mengobrol tentang hal itu?
CSS:
}
}
Ini tampaknya menyelaraskan teks dalam div ke-2 dengan angka-angka dalam daftar yang diurutkan dalam div pertama. Saya telah mengelilingi daftar dan teks dengan tag sehingga saya bisa memberitahu semua div untuk ditampilkan sebagai inline-blok. Ini membuat mereka berbaris dengan baik.
Margin ada untuk memberi jarak antara periode dan awal teks. Kalau tidak, mereka langsung berhadapan satu sama lain dan itu tampak seperti merusak pemandangan.
Majikan saya ingin teks yang dibungkus (untuk entri bibliograh yang lebih panjang) untuk sejalan dengan awal baris pertama, bukan margin kiri. Awalnya saya gelisah dengan margin positif dan indentasi teks negatif, tetapi kemudian saya menyadari bahwa ketika saya beralih ke dua div yang berbeda, ini memiliki efek membuatnya sehingga semua teks berbaris karena margin kiri div adalah margin di mana teks secara alami dimulai. Jadi, yang saya butuhkan adalah margin 0,2em untuk menambah ruang, dan semua yang lainnya berbaris dengan rapi.
Saya harap ini membantu jika OP memiliki masalah yang sama ... Saya kesulitan memahaminya.
sumber
Saya memiliki masalah yang sama dan mulai menggunakan jawaban user123444555621 . Namun, saya juga perlu menambahkan
padding
danborder
ke masing-masingli
, yang solusi itu tidak memungkinkan karena masingli
- masing adalah atable-row
.Pertama, kami menggunakan a
counter
untuk mereplikasiol
angka.Kami kemudian mengatur
display: table;
masingli
- masing dandisplay: table-cell
pada:before
untuk memberi kami lekukan.Akhirnya, bagian yang sulit. Karena kita tidak menggunakan tata letak tabel untuk keseluruhan
ol
kita perlu memastikan masing:before
- masing memiliki lebar yang sama. Kita bisa menggunakanch
unit ini untuk secara kasar menjaga lebar sama dengan jumlah karakter. Untuk menjaga agar lebarnya seragam ketika jumlah digit untuk angka:before
berbeda, kita dapat menerapkan kueri kuantitas . Dengan asumsi Anda tahu daftar Anda tidak akan 100 item atau lebih, Anda hanya perlu satu aturan kueri kuantitas untuk memberitahu:before
untuk mengubah lebarnya, tetapi Anda dapat dengan mudah menambahkan lebih banyak.sumber